题解 | 简单密码

简单密码

https://www.nowcoder.com/practice/7960b5038a2142a18e27e4c733855dac

#include <iostream>
#include <string>
#include <cctype>
using namespace std;

int lower_to_digit(const char& c) {
    int n = c - 'a';
    if(n < 3) return 2;
    else if(n < 6) return 3;
    else if(n < 9) return 4;
    else if(n < 12) return 5;
    else if(n < 15) return 6;
    else if(n < 19) return 7;
    else if(n < 22) return 8;
    else return 9;
}

int main() {
    string str, ans;
    cin >> str;
    for(const char& c: str) {
        if(isdigit(c)) { //数字
            ans += c;
        } else if(isupper(c)) { //大写
            char tmp = (char)tolower(c);
            int diff = ((tmp - 'a') + 1) % 26;
            tmp = 'a' + diff;
            ans += tmp;
        } else { //小写
            ans += to_string(lower_to_digit(c));
        }
    }
    cout << ans << endl;
    return 0;
}

全部评论

相关推荐

09-29 16:59
已编辑
门头沟学院 Java
牛客96609213...:疯狂背刺,之前还明确设置截止日期,还有笔试,现在一帮人卡在复筛,他反而一边开启扩招,还给扩招的免笔试,真服了,你好歹先把复筛中的给处理了再说
投递大疆等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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