题解 | #简单密码#

简单密码

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

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

int main() {
    string input, output;
    cin >> input;
    int nums = input.size();
    int trans = 'a' - 'A';
    for (int i = 0; i < nums; i++) {
        int tmp = input[i] - 'a';
        if ((input[i] >= 'a' && input[i] <= 'z') || (input[i] >= 'A' && input[i] <= 'Z')) {
            // 处理字母的逻辑
            if (tmp >= 0) {
                // 处理输入是小写字母的逻辑 
                if(input[i] < 's'){
                    output += to_string(tmp/3+2);
                }else if(input[i] == 's'){
                    output += '7';
                }else if(input[i] == 'z'){
                    output += '9';
                }else{
                    output += to_string((input[i] - 't')/3+8);
                }
            } else {
                // 处理输入是大写字母的逻辑
                output += static_cast<char>((input[i] + trans + 1) > 'z' ? 'a' : (input[i] + trans + 1));
            }
        }else{
            output += input[i];
        }

    }
    cout << output << endl;
    return 0;
}
// 64 位输出请用 printf("%lld")

主要的逻辑部分分为:

1,判断是否是字母。

2,判断是小写字母还是大写字母。

3,处理数据转换。

全部评论

相关推荐

头像
10-09 19:35
门头沟学院 Java
洛必不可达:java的竞争激烈程度是其他任何岗位的10到20倍
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务