top1编程
← 返回题目
题解

【入门】字符串的反码

1 条题解

  • 0
    @ 2026-7-30 1:09:40

    解题思路

    逐个字符按照题目给出的反码规则转换,再输出转换结果。

    参考代码

    // 这道题的做法:先读入题目给出的数据,再用简单的循环和判断完成要求。
    #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