2325. Decode the Message #
题目 #
-
给定字符串
key
和message
,分别表示 密钥 和 密文。解密步骤如下:- 使用
key
中26
个英文小写字母第一次出现的顺序作为替换表中的字母 顺序 。 - 将替换表与普通英文字母表对齐,形成 对照表。
- 按照对照表 替换 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);
}
}