题解 | 字符串加密

#2025,我想......# #刷题我是认真的#

解题思路:

  1. 采用List数组的方式,使用constains方法以及其有序性
  2. 三步解决:
  3. 使用list将字符串str1按顺序添加到list中,同时删除重复字符
  4. 查找26个小写字母在list中不存在的,将其按顺序添加到list中
  5. a-z默认有序,通过减去'a'确定对应在list中的索引
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String str1 = in.next();
        String str2 = in.next();
        char[] charArr = str1.toCharArray();
        List<Character> newLetterList = new ArrayList<>();
	  // 先将字符串中的字符按顺序放入list中并去除其中重复字符
        for (int i = 0; i < charArr.length; i++) {
            char c = charArr[i];
            if (!newLetterList.contains(c)) {
                newLetterList.add(c);
            }
        }
		// 遍历a-z,list中不包含的字符,添加到list中
        for (char c = 'a'; c <= 'z'; c += 1) {
            if (!newLetterList.contains(c)) {
                newLetterList.add(c);
            }
        }
		// 利用其ascii字符的有序性和a-z字符可以转化为数字的特性
        char[] charArr2 = str2.toCharArray();
        for (int i = 0; i < charArr2.length; i++) {
            charArr2[i] = newLetterList.get(charArr2[i] - 'a');
        }
        System.out.println(new String(charArr2));
    }
}

全部评论

相关推荐

牛客932073378号:乙方 乙方实战经验丰富点,简历有项目写,有师傅手把手带。甲方只能靠自己挖,自立自强了,很多甲方员工都是从安全乙方跳过来的,但最后秋招选工作要选甲方爸爸。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务