题解 | #字符串加密#
字符串加密
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); } }