题解 | C++ #简单密码#
简单密码
https://www.nowcoder.com/practice/7960b5038a2142a18e27e4c733855dac
#include <iostream> using namespace std; int main() { string s; cin >> s; for(int i = 0; i < s.size(); i++){ switch(s[i]){ case 'A' ... 'Y': s[i] += ('a' - 'A') + 1;break; case 'Z': s[i] = 'a';break; case 'a'... 'c': s[i] = '2';break; case 'd'... 'f': s[i] = '3';break; case 'g'... 'i': s[i] = '4';break; case 'j'... 'l': s[i] = '5';break; case 'm'... 'o': s[i] = '6';break; case 'p'... 's': s[i] = '7';break; case 't'... 'v': s[i] = '8';break; case 'w'... 'z': s[i] = '9';break; default:break; } } cout << s; }
看了有些题解,有直接手动算出来密码集,存在另一个字符串中;有利用map建立字典。但是,switch的做法我觉得更像人的思维方式。