描述
小英是药学专业大三的学生,暑假期间获得了去医院药房实习的机会。
在药房实习期间,小英扎实的专业基础获得了医生的一致好评,得知小英在计算概论中取得过好成绩后,主任又额外交给她一项任务,解密抗战时期被加密过的一些伤员的名单。
经过研究,小英发现了如下加密规律(括号中是一个“原文 -> 密文”的例子)
- 原文中所有的字符都在字母表中被循环左移了三个位置(dec -> abz)
- 逆序存储(abcd -> dcba )
- 大小写反转(abXY -> ABxy)
输入
一个加密的字符串。(长度小于50且只包含大小写字母)
输出
输出解密后的字符串。
样例输入
GSOOWFASOq
样例输出
Trvdizrrvj
解法:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
String a=in.nextLine();
char b[]=a.toCharArray();
char c[]=new char[b.length];//表示第二个规律还原的字符
//将第三个规律还原
for(int i=0;i<b.length;i++) {
if(b[i]>='A'&&b[i]<='Z') {
for(int j=0;j<26;j++) {
if(b[i]==(char)('A'+j)) {
b[i]=(char)('a'+j);
}
}
}
else if(b[i]>='a'&&b[i]<='z') {
for(int j=0;j<26;j++) {
if(b[i]==(char)('a'+j)) {
b[i]=(char)('A'+j);
}
}
}
}
//将第二个规律还原
for(int i=0;i<b.length;i++) {
c[i]=b[b.length-i-1];
}
//将第一个规律还原
for(int i=0;i<c.length;i++) {
if(c[i]>='A'&&c[i]<='W') {
System.out.print((char)(c[i]+3));
}
else if(c[i]>='X'&&c[i]<='Z') {
if(c[i]=='X') {
System.out.print('A');
}
else if(c[i]=='Y') {
System.out.print('B');
}
else if(c[i]=='Z') {
System.out.print('C');
}
}
else if(c[i]>='a'&&c[i]<='w') {
System.out.print((char)(c[i]+3));
}
else if(c[i]>='x'&&c[i]<='z') {
if(c[i]=='x') {
System.out.print('a');
}
else if(c[i]=='y') {
System.out.print('b');
}
else if(c[i]=='z') {
System.out.print('c');
}
}
}
}
}