题解 | #字符串加密#
字符串加密
https://www.nowcoder.com/practice/e4af1fe682b54459b2a211df91a91cf3
import java.util.*;
// dicCount作为字母出现表
// dic作为密码本
// 需要保留大小写和额外字符
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextLine()) { // 注意 while 处理多个 case
String key = in.nextLine();
String code = in.nextLine();
char[] dic = new char[26];
String ans = "";
int[] dicCount = new int[26];
int index = 0;
for (int i = 0; i < key.length(); i++) {
char cur = key.charAt(i);
if (dicCount[cur - 'a'] == 0) {
dicCount[cur - 'a']++;
dic[index] = cur;
index++;
}
}
for (int i = 0; i < 26; i++) {
if (dicCount[i] == 0) {
dic[index] = (char)('a' + i);
index++;
}
}
for (int i = 0; i < code.length(); i++) {
char curChar = code.charAt(i);
if (curChar >= 'a' && curChar <= 'z') {
ans += dic[curChar - 'a'];
} else if (curChar >= 'A' && curChar <= 'Z'){
ans += (char)(dic[curChar - 'A'] - 'a' + 'A');
} else {
ans += curChar;
}
}
System.out.println(ans);
}
}
}
