题解 | 字符串加解密

字符串加解密

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

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

string encrypt(string s)
{
    string ret = s;
    for(size_t i = 0; i < s.size(); i++){
        if(s[i] >= 'a' && s[i] <= 'z'){
            if(s[i] == 'z'){
                ret[i] = 'a' - 'a' + 'A';
            }else{
                ret[i] = s[i] - 'a' + 1 + 'A';
            }
        }
        if(s[i] >= 'A' && s[i] <= 'Z'){
            if(s[i] == 'Z'){
                ret[i] = 'A' - 'A' + 'a';
            }else{
                ret[i] = s[i] - 'A' + 1 + 'a';
            }
        }
        if(s[i] >= '0' && s[i] <= '9'){
            if(s[i] == '9'){
                ret[i] = '0';
            }else{
                ret[i] = s[i] + 1;
            }
        }
    }
    return ret;
}

string decrypt(string s)
{
    string ret = s;
    for(size_t i = 0; i < s.size(); i++){
        if(s[i] <= 'z' && s[i] >= 'a'){
            if(s[i] == 'a'){
                ret[i] = 'Z';
            }else{
                ret[i] = s[i] - 1 - 'a' + 'A';
            }
        }
        if(s[i] <= 'Z' && s[i] >= 'A'){
            if(s[i] == 'A'){
                ret[i] = 'z';
            }else{
                ret[i] = s[i] - 1 - 'A' + 'a';
            }
        }
        if(s[i] <= '9' && s[i] >= '0'){
            if(s[i] == '0'){
                ret[i] = '9';
            }else{
                ret[i] = s[i] - 1;
            }
        }
    }
    return ret;
}

int main() 
{
    string s;
    string t;
    cin >> s >> t;
    cout << encrypt(s) << endl;
    cout << decrypt(t) << endl;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

程序员牛肉:你这其实一点都没包装,标准的流水线产品。 实习现在不一定能解决你的问题,你太浮躁了。你看了多少源码?看了多少技术博客?真的没必要这么浮躁的着急找实习,沉下心来学习
投递实习岗位前的准备
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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