题解 | #简单密码#

简单密码

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")

比较笨的解法,不如高赞字典法简洁,而且字典法方便换字典和扩展解密的函数,比较推荐

全部评论

相关推荐

不愿透露姓名的神秘牛友
08-07 15:21
不是哥们,我就随便投投,你咋这么热情
25届上岸PDD_微...:同学,试试我们部门
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
08-08 10:30
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-15 22:48
牛马人的牛马人生:建议就是把北邮几个字放大就行了。北邮本硕按理来说完全不用担心啊
点赞 评论 收藏
分享
07-19 13:28
长沙学院 Java
鸿哥鸿哥:学院(一本),感觉在脱ku子放屁,学院结尾的除了那几家出名的,一律按二本处理
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务