1 条题解
-
0
练69.4 信息加密
解题思路
整行读取,分别在大写、小写各自26字母环上向后移动3位,用模26处理末尾回绕;非字母保留。
正确性说明
依题目给出的对应关系逐项处理,位置与原输入保持明确对应。每一步完成当前项的全部贡献,结束后得到所有位置或字符的目标结果。
易错点
不改变原大小写;空格、标点全部保留。
复杂度
时间O(L),空间O(L)。
参考代码(C++11)
#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); string s; getline(cin, s); for (char &c : s) { if (c >= 'A' && c <= 'Z') c = char((c - 'A' + 3) % 26 + 'A'); else if (c >= 'a' && c <= 'z') c = char((c - 'a' + 3) % 26 + 'a'); } cout << s << "\n"; return 0; }
- 1