题解 | #字符串加密#

字符串加密

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-16 18:05
何尝不是一种学历歧视呢
下午吃泡馍:这种公司不投也罢,不过建议挂出公司名字,1.1w就应激到问是不是清北也是看得出来不是啥好公司了,估计这hr也没见过啥世面
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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