题解 | #简单密码#
简单密码
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")
比较笨的解法,不如高赞字典法简洁,而且字典法方便换字典和扩展解密的函数,比较推荐
查看17道真题和解析