题解 | #字符串加密#
字符串加密
https://www.nowcoder.com/practice/e4af1fe682b54459b2a211df91a91cf3
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
char[] commenChars = new char[]{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
char[] newChars = new char[26];
String inputStr1 = in.nextLine();
String inputStr2 = in.nextLine();
//去重
char[] cArr = inputStr1.toCharArray();
int[] iArr = new int[cArr.length];
for(int i = 0; i < cArr.length; i++){
if(i + 1 == cArr.length - 1){
break;
}
if(iArr[i] == -1){
continue;
}
for(int j = i + 1 ; j < cArr.length; j++){
iArr[i] = 1;
if(cArr[i] == cArr[j]){
iArr[j] = -1;
}
}
}
String keyStr = new String();
for(int i = 0; i < iArr.length; i++){
if(iArr[i] != -1){
keyStr = keyStr + cArr[i];
}
}
// 第二部分密钥
int[] iArr2 = new int[26];
for(int i = 0; i < keyStr.length(); i++){
for(int j = 0; j < commenChars.length; j++){
if(keyStr.charAt(i) == commenChars[j]){
iArr2[j] = -1;
}
}
}
String keyCommonStr2 = new String();
for(int i = 0; i < commenChars.length; i++){
if(iArr2[i] == -1){
continue;
}
keyCommonStr2 += commenChars[i];
}
// 最终的密钥 输入的密钥 + 字母顺序
String keyStrFinal = keyStr + keyCommonStr2;
char[] keyFinalArr= keyStrFinal.toCharArray();
// 最终结果
String resStr = new String();
char[] s2Arr = inputStr2.toCharArray();
for(int i = 0; i < s2Arr.length; i++){
for(int j = 0; j < commenChars.length; j++){
if(s2Arr[i] == commenChars[j]){
resStr = resStr + keyFinalArr[j];
}
}
}
System.out.println(resStr);
}
}

