题解 | #字符串加解密#
字符串加解密
https://www.nowcoder.com/practice/2aa32b378a024755a3f251e75cbf233a
#include <cctype> #include <iostream> using namespace std; string encode(string str) { string res = str; for (int i = 0; i < str.length(); ++i) { if (isalpha(str[i]) && isupper(str[i])) { res[i] = 'a' + (((res[i] - 'A') + 1) % 26); } else if (isalpha(str[i]) && islower(str[i])) { res[i] = 'A' + (((res[i] - 'a') + 1) % 26); }else if(isdigit(str[i])){ res[i] = '0' + (((res[i] - '0') + 1) %10) ; }else{ res[i]= str[i]; } } return res; } string decode(string str) { string res = str; for (int i = 0; i < str.length(); ++i) { if (isalpha(str[i]) && isupper(str[i])) { res[i] = 'a' + (((26+res[i] - 'A') - 1) % 26); } else if (isalpha(str[i]) && islower(str[i])) { res[i] = 'A' + (((26+res[i] - 'a') - 1) % 26); }else if(isdigit(str[i])){ res[i] = '0' + (((10+res[i] - '0') - 1) %10) ; }else{ res[i]=str[i]; } } return res; } int main() { string str1, str2; // string ans1 = "", ans2 = ""; cin >> str1 >> str2; cout<<encode(str1)<<endl; cout<<decode(str2)<<endl; } // 64 位输出请用 printf("%lld")#23届找工作求助阵地#