字符串加密题解

字符串加密

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

Java版本的字符串加密

  • 思路是利用有序的LinkedHashSet集合,先把密钥添加进去,再把剩下的字符添加进去形成完整的密钥;

  • 再根据要加密的字符串字符一个个取出拼接输出,ps:不要忘了大小写和空格

import java.util.Scanner;
import java.util.LinkedHashSet;
import java.util.ArrayList;

public class Main{
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            String s1 = sc.nextLine().toUpperCase();
            String s2 = sc.nextLine();
            char[] chars1 = s1.toCharArray();
            char[] chars2 = s2.toCharArray();
            LinkedHashSet<Character> set = new LinkedHashSet();
            for (int i = 0; i < chars1.length; i++) {
                set.add(chars1[i]);
            }
            int k = 0;
            while (set.size() < 26) {
                char a = (char) ('A' + k);
                set.add(a);
                k++;
            }
            ArrayList<Character> list = new ArrayList<>(set);
            StringBuffer sb = new StringBuffer();
            for (int i = 0; i < chars2.length; i++) {
                if (chars2[i] == ' ') {
                    sb.append(chars2[i]);
                } else if (chars2[i] < 'a') {
                    int n = (int) (chars2[i] - 'A');
                    char c = list.get(n);
                    sb.append(c);
                } else {
                    int n = (int) (chars2[i] - 'a');
                    char c = (char)(list.get(n)+'a'-'A');
                    sb.append(c);
                }

            }

            System.out.println(sb.toString());
        }
    }
}
全部评论
说了只有小写没有大写,好像也没有空格
11 回复 分享
发布于 2022-07-10 16:21
T R A I L B Z E S C D F G H J K M N O P Q U V W X Y (实际需建立小写字母的字母表,此字母表仅为方便演示) 数据范围:1 \le n \le 100 \1≤n≤100 ,保证输入的字符串中仅包含小写字母 这是题目原文,注意看题
1 回复 分享
发布于 2022-10-19 13:08 广东
大哥 题目说了只有小写字母啊
点赞 回复 分享
发布于 2023-04-11 09:46 江苏
题都读不懂啊
点赞 回复 分享
发布于 2022-11-22 23:09 陕西

相关推荐

牛客92804383...:在他心里你已经是他的员工了
点赞 评论 收藏
分享
05-12 11:09
已编辑
门头沟学院 后端
已注销:没必要放这么多专业技能的描述。这些应该是默认已会的,写这么多行感觉在凑内容。项目这块感觉再包装包装吧,换个名字,虽然大家的项目基本都是网上套壳的,但是你这也太明显了。放一个业务项目,再放一个技术项目。技术项目,例如中间件的一些扩展和尝试。
简历中的项目经历要怎么写
点赞 评论 收藏
分享
评论
51
9
分享

创作者周榜

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