2325. Decode the Message

2325. Decode the Message #

题目 #

  • 给定字符串 keymessage ,分别表示 密钥密文。解密步骤如下:

    • 使用 key26 个英文小写字母第一次出现的顺序作为替换表中的字母 顺序
    • 将替换表与普通英文字母表对齐,形成 对照表
    • 按照对照表 替换 message 中的每个字母。
    • 空格 ' ' 保持不变。
  • 例如,key = "happy boy"(实际的加密密钥会包含字母表中每个字母 至少一次),得到部分对照表('h' -> 'a'、'a' -> 'b'、'p' -> 'c'、'y' -> 'd'、'b' -> 'e'、'o' -> 'f')

  • 返回解密后的消息。

思路 #

哈希 #

代码 #

哈希 #

class Solution {
    public String  decodeMessage(String key, String message) {
        Map<Character, Character> map = new HashMap<>();
        char charPoint = 'a';
        for (int i = 0; i < key.length(); i++) {
            char ch = key.charAt(i);
            if (ch != ' ' && map.containsKey(ch) == false) map.put(ch, charPoint++);
        }
        
        char[] messageArray = message.toCharArray();
        for (int i = 0; i < messageArray.length; i++) {
            if (messageArray[i] != ' ') messageArray[i] = map.get(messageArray[i]);
        }
        
        return String.valueOf(messageArray);
    }
}