1
已解决
1791 密码升级战
题目描述 Description
密码战中A国的密码被我们成功破译,所以A国想出另外一条密码规则:
密码仍然为一串字符串,字符串里面每5个字符分为1组;
第一组字符串里面的字母转化为其后的第二个字母,例如:A--C,a--c,Y--A,y--a;
第二组字符串里面的字母转化为其前的第二个字母,例如:C--A,c--a,A--Y,a--y;
后面的字符串的字母全部转化为其后的第一个字母,例如:A--B,a--b,Z--A,z--a。
(除了字母以外的其他字符都不进行变化)
无奈我国再次截取了他们的密码,请将截获的密码翻译成原先的密码。
输入描述 Input Description
截取的字符串密码,密码字符个数为(1-50)
输出描述 Output Description
破译后的字符串密码
样例输入 Sample Input
cdeaBwxAzyBc23a
样例输出 Sample Output
abcyZyzCbaAb23z
求大神指教!!!谢谢啦!!!
http://judge.codingtang.com/problem/1791/
邵逸儒在2018-01-27 12:57:10追加了内容
0
已采纳
可以参考如下代码。
for(int i=0; i<=min(4,l); i++)//第一部分判断并替换 { if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z') { if(s[i]=='B') cout<<'Z'; else if(s[i]=='b') cout<<'z'; else if(s[i]=='a') cout<<'y'; else if(s[i]=='A') cout<<'Y'; else cout<<char(s[i]-2); } else cout<<s[i]; } for(int i=5; i<=min(9,l); i++)//第二部分判断并替换 { if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z') { if(s[i]=='Z') cout<<'B'; else if(s[i]=='z') cout<<'b'; else if(s[i]=='y') cout<<'a'; else if(s[i]=='Y') cout<<'A'; else cout<<char(s[i]+2); } else cout<<s[i]; } for(int i=10; i<=l; i++)//第三部分判断并替换 { if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z') { if(s[i]=='A') cout<<'Z'; else if(s[i]=='a') cout<<'z'; else cout<<char(s[i]-1); } else cout<<s[i]; }
模拟一遍就行了。
0
0
0
0