字符串的反码【吉林大学考研机试题】

字符串的反码

一个二进制数,将其每一位取反,称之为这个数的反码。

下面我们定义一个字符的反码。

如果这是一个小写字符,则它和字符 a 的距离与它的反码和字符 z 的距离相同;如果是一个大写字符,则它和字符 A 的距离与它的反码和字符 Z 的距离相同;如果不是上面两种情况,它的反码就是它自身。

举几个例子,a 的反码是 z;c 的反码是 x;W 的反码是 D;1 的反码还是 1;

一个字符串的反码定义为其所有字符的反码。

我们的任务就是计算出给定字符串的反码。

输入格式
若干行,每行一个字符串。

最后一行只包含一个字符 !,表示输入结束,无需处理。

输出格式
对于输入的每个字符串,输出其反码,每个数据占一行。

数据范围
输入最多 10 行有效字符串,每行不超过 80 字符。

输入样例:
Hello
JLU-CCST-2011
!
输出样例:
Svool
QOF-XXHG-2011

思路

求一定范围[a,b]内x关于中间轴对称的另一个数x'

x=a+(bx+1)1

x=a+bx

代码

点击查看代码
#include<bits/stdc++.h>
using namespace std;

int main(){
    string s;
    while(cin >> s){
        if(s == "!")return 0;
        for(auto c:s){
            if(isupper(c))c = 'A' + 'Z' - c;
            else if(islower(c))c = 'a' + 'z' - c;
            cout << c;
        }
        cout << '\n';
    }
}
posted @   Keith-  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示