题解 | 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的做法我觉得更像人的思维方式。