题解 | #简单密码#
简单密码
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,处理数据转换。
韶音科技公司氛围 663人发布