题解 | #字符串加密#

字符串加密

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);
    }
}

全部评论

相关推荐

用微笑面对困难:加急通知你不合适,也很吗有礼貌了你。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务