/*
* 解题思路:
* 加密: a->B, Z->a, 1->2, 9->0
* 解密: B->a, a->Z, 2->1, 0->9
* 不知所云:
* 1. 这题目真没意思...大概是我太菜了...想不到好的解法
* 2. (参考其他答案)这类题目查表法, 代码写起来就没那么丑, 果然还是太菜了还不长记性...
* 提交失败:
* 1. 没注意题目要求多组输入...
* 2. 解密部分处理0错误, copy加密部分代码改漏了
*/
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextLine()) {
char[] encrypt = sc.nextLine().toCharArray();
for (int i = 0; i < encrypt.length; i++) {
if (encrypt[i] >= 'a' && encrypt[i] <= 'y') {
encrypt[i] = (char)(encrypt[i] - ('a' - 'B'));
continue;
}
if (encrypt[i] >= 'A' && encrypt[i] <= 'Y') {
encrypt[i] = (char)(encrypt[i] + ('b' - 'A'));
continue;
}
if (encrypt[i] >= '0' && encrypt[i] <= '8') {
encrypt[i] = (char)(encrypt[i] + 1);
continue;
}
if (encrypt[i] == 'z') encrypt[i] = 'A';
else if (encrypt[i] == 'Z') encrypt[i] = 'a';
else if (encrypt[i] == '9') encrypt[i] = '0';
}
System.out.println(new String(encrypt));
char[] decrypt = sc.nextLine().toCharArray();
for (int i = 0; i < decrypt.length; i++) {
if (decrypt[i] >= 'b' && decrypt[i] <= 'z') {
decrypt[i] = (char)(decrypt[i] - ('b' - 'A'));
continue;
}
if (decrypt[i] >= 'B' && decrypt[i] <= 'Z') {
decrypt[i] = (char)(decrypt[i] + ('a' - 'B'));
continue;
}
if (decrypt[i] >= '1' && decrypt[i] <= '9') {
decrypt[i] = (char)(decrypt[i] - 1);
continue;
}
if (decrypt[i] == 'a') decrypt[i] = 'Z';
else if (decrypt[i] == 'A') decrypt[i] = 'z';
else if (decrypt[i] == '0') decrypt[i] = '9';
}
System.out.println(new String(decrypt));
}
}
} 补充查表法, 性能内存占用先不管, 至少看起来没有那么丑了...
/*
* 解题思路:查表法
*/
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String encrypt = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
String decrypt = "BCDEFGHIJKLMNOPQRSTUVWXYZAbcdefghijklmnopqrstuvwxyza1234567890";
while (sc.hasNextLine()) {
char[] str1 = sc.nextLine().toCharArray();
for (int i = 0; i < str1.length; i++) {
int idx = encrypt.indexOf(str1[i]);
str1[i] = idx >= 0 ? decrypt.charAt(idx) : str1[i];
}
System.out.println(new String(str1));
char[] str2 = sc.nextLine().toCharArray();
for (int i = 0; i < str2.length; i++) {
int idx = decrypt.indexOf(str2[i]);
str2[i] = idx >=0 ? encrypt.charAt(idx) : str2[i];
}
System.out.println(new String(str2));
}
}
} 


京公网安备 11010502036488号