题解 | #字符串加密#

字符串加密

https://www.nowcoder.com/practice/e4af1fe682b54459b2a211df91a91cf3

import java.util.Scanner;


import java.util.LinkedHashSet;

import java.util.HashMap;
import java.util.ArrayList;

import java.io.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) throws IOException{
        // Scanner in = new Scanner(System.in);
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        //加密方法
        String str1 = in.readLine();
        //需要加密的字符串
        String str2 = in.readLine();
        int[] count = new int[26];

        char[] chars1 = str1.toCharArray();
        char[] chars2 = str2.toCharArray();
        //对chars1去重
        LinkedHashSet<Character> set = new LinkedHashSet<Character>();
        for(int i=0;i<chars1.length;i++){
            set.add(chars1[i]);
        }
        //把set补成一个新的字符表
        //同时下标对应的就是原字母表
        int n=0;
         while(set.size()<26){

            char c = (char)('a'+n);
            set.add(c);
            n++;
         }
         //构建一个hashMap
         //HashMap<Character,Character> map = new HashMap<>();
        //建立一个list集合把set集合放进去
         ArrayList<Character> list = new ArrayList<>(set);
        //开始加密
        StringBuilder sb = new StringBuilder();
        for(int i=0;i<chars2.length;i++){
            if(chars2==null){
                sb.append(chars2[i]);
            }else{
                int index = (chars2[i]-'a');
                sb.append(list.get(index));
            }
            
        }
        System.out.print(sb.toString());


        

        



    }
}

全部评论

相关推荐

头像
11-27 14:28
长沙理工大学
刷算法真的是提升代码能力最快的方法吗?&nbsp;刷算法真的是提升代码能力最快的方法吗?
牛牛不会牛泪:看你想提升什么,代码能力太宽泛了,是想提升算法能力还是工程能力? 工程能力做项目找实习,算法也分数据结构算法题和深度学习之类算法
点赞 评论 收藏
分享
Hello_WordN:咱就是说,除了生命其他都是小事,希望面试官平安,希望各位平时也多注意安全
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务