题解 | #简单密码#
简单密码
https://www.nowcoder.com/practice/7960b5038a2142a18e27e4c733855dac
#include <iostream> #include <cctype> #include <string> using namespace std; void LowertoNum(char &lc) { if (lc == 'a' || lc == 'b' || lc == 'c') { lc = '2'; } else if (lc == 'd' || lc == 'e' || lc == 'f') { lc = '3'; } else if (lc == 'g' || lc == 'h' || lc == 'i') { lc = '4'; }else if (lc == 'j' || lc == 'k' || lc == 'l') { lc = '5'; }else if (lc == 'm' || lc == 'n' || lc == 'o') { lc = '6'; }else if (lc == 'p' || lc == 'q' || lc == 'r' || lc == 's') { lc = '7'; }else if (lc == 't' || lc == 'u' || lc == 'v') { lc = '8'; }else if (lc == 'w' || lc == 'x' || lc == 'y' || lc == 'z') { lc = '9'; } else { return; } } void UppertoLower(char &uc) { char lc; if (uc == 'Z') { lc = 'a'; } else { lc = tolower(uc) + 1; } uc = lc; } int main() { string cipher; getline(cin, cipher); for (int i = 0; i < cipher.size(); ++i) { if (isalpha(cipher[i])) { if (islower(cipher[i])) { LowertoNum(cipher[i]); } else { UppertoLower(cipher[i]); } } else { continue; } } cout << cipher << endl; return 0; } // 64 位输出请用 printf("%lld")
比较笨的解法,不如高赞字典法简洁,而且字典法方便换字典和扩展解密的函数,比较推荐