题目描述
小科正在跟科丁博士玩一个脑力游戏,科丁博士给出原文经过加密得到密文的规律,需要小科对其进行解密。
科丁博士给出了如下加密规律:
-
原文中所有的字符都在字母表中被循环左移了三个位置(例如:dec加密后为abz)
-
逆序存储(例如:abcd加密后为dcba )
-
大小写反转(例如:abXY加密后为ABxy)
现在题目给出加密后的密文,你能帮助小科进行解密得到原文吗?
输入格式
一个加密的字符串。(长度小于50且只包含大小写字母)
输出格式
输出解密后的原文字符串。
输入输出样例
输入样例1:
复制
GSOOWFASOq
输出样例1:
复制
Trvdizrrvj
【耗时限制】1000ms 【内存限制】64MB
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
string s;
int main(){
cin>>s;
for(ll i=0;i<s.size();i++)
if(s[i]>='a'&&s[i]<='z')s[i]-=32;
else s[i]+=32;reverse(s.begin(),s.end());
for(ll i=0;i<s.size();i++){
s[i]+=3;
if(s[i]>'z'||s[i]>'Z'&&s[i]<'a')s[i]-=26;
}
cout<<s;
return 0;
}