题解 | #字符串加密#

字符串加密

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

import java.util.; import java.io.;

public class Main{ //字符串加密 public static void main(String[] args) {

    final InputStreamReader reader = new InputStreamReader(System.in);
    try(  BufferedReader br = new BufferedReader(reader)){

         char[] chars = br.readLine().toCharArray();
         char[] password = br.readLine().toCharArray();


            StringBuffer sb = new StringBuffer();
         StringBuffer sb_result = new StringBuffer();

         String dic = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        LinkedHashSet<Character> set = new LinkedHashSet<>();
        LinkedHashSet<Character> set_dic = new LinkedHashSet<>();

        char[] chars_dic = dic.toCharArray();
        for (char c : chars_dic) {
            set_dic.add(c);
        }

        for (int i = 0; i < chars.length; i++) {
            if (!set.contains(chars[i])){
                sb.append(chars[i]);
                set.add(chars[i]);
                set_dic.remove(Character.toUpperCase(chars[i]));
            }
        }

        //生成组合密文
        set_dic.forEach(e->sb.append(e));

        for (int i = 0; i < password.length; i++) {
            //获取字符在原字典中的索引
             int index = dic.indexOf(Character.toUpperCase(password[i]));
              String now_str = sb.toString().substring(index, index + 1);
             if (password[i] <=90) {
                sb_result.append(now_str.toUpperCase());
             }
             else sb_result.append(now_str.toLowerCase());
        }
        
        System.out.println(sb_result);


    }catch (IOException e){
        System.out.println(e.getMessage());
    }

}

}

全部评论

相关推荐

在笔试的大西瓜很矫健:校招数分不用想了,这经历和学历都不够用,大厂更别想,初筛都过不了,说点不好听的小厂数分都进不去(小厂也是假数分),要两个对口实习+3个项目(或者3+2),而且要有含金量才能补一点你的学历劣势。 建议刷实习,社招找数分,校招看运气,能入行业就行,可以运营转数分
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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