题解 | #字符串加解密#

字符串加解密

http://www.nowcoder.com/practice/2aa32b378a024755a3f251e75cbf233a

本题难度不大,根据题意写清楚加密和解密的过程即可,其中涉及到大小写字母之间相互转换的问题。

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

// 解密操作
void decipher(string &s) {
    for (int i = 0; i < s.size(); i++) {
        if (s[i] >= 'b' && s[i] <= 'z') {
            s[i] = s[i] - 33;
            continue;
        }
        if (s[i] == 'a') {
            s[i] = 'Z';
            continue;
        }
        if (s[i] >= 'B' && s[i] <= 'Z') {
            s[i] = s[i] + 31;
            continue;
        }
        if (s[i] == 'A') {
            s[i] = 'z';
            continue;
        }
        if (s[i] >= '1' && s[i] <= '9') {
            s[i] = s[i] - 1;
            continue;
        }
        if (s[i] == '0') {
            s[i] = '9'; 
            continue;
        }
    }
}

// 加密操作
void encryption(string &s) {
    for (int i = 0; i < s.size(); i++) {
        if (s[i] >= 'a' && s[i] <= 'y') {
            s[i] = s[i] - 31;
            continue;
        }
        if (s[i] == 'z') {
            s[i] = 'A';
            continue;
        }
        if (s[i] >= 'A' && s[i] <= 'Y') {
            s[i] = s[i] + 33;
            continue;
        }
        if (s[i] == 'Z') { 
            s[i] = 'a';
            continue;
        }
        if (s[i] >= '0' && s[i] <= '8') {
            s[i] = s[i] + 1;
            continue;
        }
        if (s[i] == '9') {
            s[i] = '0';
            continue;
        }
    }
}

int main() {
    string s1, s2;
    getline(cin, s1, '\n');
    getline(cin, s2, '\n');
    encryption(s1);
    decipher(s2);
    cout << s1 << endl;
    cout << s2 << endl;
}l
全部评论

相关推荐

程序员花海_:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
给🐭🐭个面试机会...:我擦seed✌🏻
点赞 评论 收藏
分享
12-24 20:52
武汉大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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