1. 程式人生 > 實用技巧 >華為機試 字串加解密

華為機試 字串加解密

#include<iostream>
#include <vector>
#include "bits/stdc++.h"
using namespace std;

char jiami(char s){
    if(s >= 'a'&&s < 'z'){return char(s-31);}
    else if(s == 'z') return 'A';
    else if(s >= 'A'&&s < 'Z') return char(s+33);
    else if(s == 'Z') return
'a'; else if(s >= '0'&&s < '9'){ return char(s+1);} else if(s == '9') return '0'; return ' '; //需要加預設返回值,否則編譯器會報錯 } char jiemi(char s){ if(s > 'A'&&s <= 'Z'){return char(s+31);} else if(s == 'A') return 'z'; else if(s > 'a'&&s <= '
z')return char(s-33); else if(s == 'a') return 'Z'; else if(s > '0'&&s <= '9'){ return char(s-1);} else if(s == '0') return '9'; return ' '; } int main() { // unordered_map<char,char>mpchar; // for(char c='a';c <= 'z';c++){ // if(c != 'z'){mpchar[c] = char(c-31);}
// else mpchar[c] = 'A'; // } // for(char c='0';c <= '9';c++){ // if(c!='9'){mpchar[c] = char(c+1);} // else mpchar[c] = '0'; // } // // for(auto it = mpchar.begin();it != mpchar.end();it++){ // cout << it->first << " " << it->second << endl; // } string s1,s2; while(cin >> s1 >> s2){ string res = ""; for(int i=0;i < s1.size();i++){ res += jiami(s1[i]); } cout << res << endl; res = ""; for(int i=0;i < s2.size();i++){ res += jiemi(s2[i]); } cout << res << endl; } return 0; }

題目描述

1、對輸入的字串進行加解密,並輸出。

2、加密方法為:

當內容是英文字母時則用該英文字母的後一個字母替換,同時字母變換大小寫,如字母a時則替換為B;字母Z時則替換為a;

當內容是數字時則把該數字加1,如0替換1,1替換2,9替換0;

其他字元不做變化。

3、解密方法為加密的逆過程。

本題含有多組樣例輸入。

輸入描述:

輸入說明
輸入一串要加密的密碼
輸入一串加過密的密碼

輸出描述:

輸出說明
輸出加密後的字元
輸出解密後的字元

示例1

輸入

複製
abcdefg
BCDEFGH

輸出

複製
BCDEFGH
abcdefg