华为机试:字符串加解密

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

string en_or_decryption (string str, int oper) {
    for (auto c = 0; c < str.length(); c++) {
        if (str[c] >= '0' && str[c] <= '9') {
            if (oper) {
                str[c] = (str[c] + 1) > '9' ? '0' : (str[c] + 1);
            }
            else {
                str[c] = (str[c] - 1) < '0' ? '9' : (str[c] - 1);
            }
        }
        else if (str[c] >= 'A' && str[c] <= 'Z') {
            if (oper) {
                str[c] = tolower(str[c]);
                str[c] = (str[c] + 1) > 'z' ? 'a' : (str[c] + 1);
            }
            else {
                str[c] = tolower(str[c]);
                str[c] = (str[c] - 1) < 'a' ? 'z' : (str[c] - 1);
            }
        }
        else {
            if (oper) {
                str[c] = toupper(str[c]);
                str[c] = (str[c] + 1) > 'Z' ? 'A' : (str[c] + 1);
            }
            else {
                str[c] = toupper(str[c]);
                str[c] = (str[c] - 1) < 'A' ? 'Z' : (str[c] - 1);
            }
        }
    }
    return str;
}

int main() {
    // int a, b;
    // while (cin >> a >> b) { // 注意 while 处理多个 case
    //     cout << a + b << endl;
    // }
    string encpt;
    cin >> encpt;
    string decpt;
    cin >> decpt;
    encpt = en_or_decryption(encpt, 1);
    cout << encpt << endl;
    decpt = en_or_decryption(decpt, 0);
    cout << decpt << endl;
    return 0;
}

全部评论

相关推荐

鬼迹人途:你去投一投尚游游戏,服务器一面,第一个图算法,做完了给你一个策略题,你给出方案他就提出低概率问题,答不上当场给你挂
点赞 评论 收藏
分享
程序员牛肉:主要是因为小厂的资金本来就很吃紧,所以更喜欢有实习经历的同学。来了就能上手。 而大厂因为钱多,实习生一天三四百的就不算事。所以愿意培养你,在面试的时候也就不在乎你有没有实习(除非是同级别大厂的实习。) 按照你的简历来看,同质化太严重了。项目也很烂大街。 要么换项目,要么考研。 你现在选择工作的话,前景不是很好了。
点赞 评论 收藏
分享
牛客266927136号:为啥实习经历写这么少,项目经历反而大写特写,最重要的还是实习经历吧,写具体点,什么场景下做了什么事,解决了什么问题,优化了什么场景,性能提升了多少多少
点赞 评论 收藏
分享
评论
1
7
分享

创作者周榜

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