题解
【入门】字符串的反码
1 条题解
-
0
解题思路
逐个字符按照题目给出的反码规则转换,再输出转换结果。
参考代码
// 这道题的做法:先读入题目给出的数据,再用简单的循环和判断完成要求。 #include <bits/stdc++.h> using namespace std; int main(){ string s; getline(cin,s); for (int i = 0;i < s.size();i++){ // 判断当前字符是不是大写英文字母 A-Z if (isupper(s[i])!=0){ // 大写字母求反码公式:'Z' - 当前字母 + 'A' //W,Z-W+A = 90-87+65=68 → D,和题目例子一致 s[i] = 'Z' - s[i] + 'A'; } // 否则判断是不是小写字母 a-z else if (islower(s[i])!=0){ //小写字母求反码公式:'z' - 当前字母 + 'a' //c,z-c+a=122-99+97=120 → x s[i] = 'z' - s[i] + 'a'; } } cout<<s; return 0; }复杂度
代码只使用了简单变量、循环和判断。若循环检查了 n 个数据,时间复杂度通常为 O(n);没有开辟与输入规模相关的额外数组时,空间复杂度为 O(1)。
- 1