题解 | #字符串加密#

字符串加密

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

形成密钥过程如下:

输入Key去重——>在Key末尾按顺序加上字母表内非Key的字母——>形成密钥;

加密过程如下

在字母表内找到需要加密的明文中所有字母所对应的下标——>在按明文的顺序依次在密钥中找到对应下标的字符——>按序输出得到答案。

代码如下(代码应用到了Set接口的无重复性特性进行秒的形成,有用List的可重复性进行密文的形成输出):

import java.util.ArrayList; import java.util.LinkedHashSet; import java.util.Locale; import java.util.Scanner; public class Main { public static void main(String[] args) {

    Scanner sc = new Scanner(System.in);
    String str="abcdefghijklmnopqrstuvwxyz";

    String str1=sc.nextLine();                                 //形成密钥。
    str1=str1.toLowerCase(Locale.ROOT);
    LinkedHashSet<Character> list=new LinkedHashSet<>();
    for (int i=0;i<str1.length();i++){
        list.add(str1.charAt(i));
    }
    for (int i=0;i<str.length();i++){
        list.add(str.charAt(i));
    }

    String s=new String();
    for (Character character : list) {
        s=s+character;
    }

    ArrayList<Character> list1=new ArrayList<>();     //形成密文。
    String str2=sc.nextLine();
    str2=str2.toLowerCase(Locale.ROOT);
    for (int i=0;i<str2.length();i++){
        for (int j=0;j<str.length();j++){
            if(str2.charAt(i)==str.charAt(j)){
                list1.add(s.charAt(j));
            }
        }
    }
    for (Character character : list1) {
        System.out.print(character);
    }
}

}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-03 16:22
点赞 评论 收藏
分享
05-12 17:00
门头沟学院 Java
king122:你的项目描述至少要分点呀,要实习的话,你的描述可以使用什么技术,实现了什么难点,达成了哪些数字指标,这个数字指标尽量是真实的,这样面试应该会多很多,就这样自己包装一下,包装不好可以找我,我有几个大厂最近做过的实习项目也可以包装一下
点赞 评论 收藏
分享
废物一个0offer:认真的吗二本本科找人工智能岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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