题解 | 字符串加解密

字符串加解密

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

全部评论

相关推荐

07-25 13:42
门头沟学院 Java
安锋:看看老板的腿
点赞 评论 收藏
分享
牛客34884196...:你期望薪资4-5k,那确实可以重生了,但很难在深圳活下去
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-24 18:34
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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