题解 | #字符串加密#

字符串加密

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

import java.util.*;

// dicCount作为字母出现表
// dic作为密码本
// 需要保留大小写和额外字符
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextLine()) { // 注意 while 处理多个 case
            String key = in.nextLine();
            String code = in.nextLine();
            char[] dic = new char[26];
            String ans = "";
            int[] dicCount = new int[26];
            int index = 0;
            for (int i = 0; i < key.length(); i++) {
                char cur = key.charAt(i);
                if (dicCount[cur - 'a'] == 0) {
                    dicCount[cur - 'a']++;
                    dic[index] = cur;
                    index++;
                }
            }
            for (int i = 0; i < 26; i++) {
                if (dicCount[i] == 0) {
                    dic[index] = (char)('a' + i);
                    index++;
                }
            }

            for (int i = 0; i < code.length(); i++) {
                char curChar = code.charAt(i);
                if (curChar >= 'a' && curChar <= 'z') {
                    ans += dic[curChar - 'a'];
                } else if (curChar >= 'A' && curChar <= 'Z'){
                    ans += (char)(dic[curChar - 'A'] - 'a' + 'A');
                } else {
                    ans += curChar;
                }
            }
            System.out.println(ans);
        }
    }
}

全部评论

相关推荐

昨天 10:09
复旦大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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