[LeetCode]#2325. Decode the Message
Environment: Python 3.8
Key technique: chr, dictionary
You are given the strings key
and message
, which represent a cipher key and a secret message, respectively. The steps to decode message
are as follows:
- Use the first appearance of all 26 lowercase English letters in
key
as the order of the substitution table. - Align the substitution table with the regular English alphabet.
- Each letter in
message
is then substituted using the table. - Spaces
' '
are transformed to themselves.
- For example, given
key = "happy boy"
(actual key would have at least one instance of each letter in the alphabet), we have the partial substitution table of ('h' -> 'a'
,'a' -> 'b'
,'p' -> 'c'
,'y' -> 'd'
,'b' -> 'e'
,'o' -> 'f'
).
Return the decoded message.
Example 1:
Input: key = "the quick brown fox jumps over the lazy dog", message = "vkbs bs t suepuv"
Output: "this is a secret"
Explanation: The diagram above shows the substitution table.
It is obtained by taking the first appearance of each letter in "the quick brown fox jumps over the lazy dog".
Analysis:
- Generate a dictionary
{‘‘t’: ‘a’, ‘h’: ‘b’, ‘e’: ‘c’, ‘q’: ‘d’, ‘u’: ‘e’, ‘i’: ‘f’, ‘c’: ‘g’, ‘k’: ‘h’, ‘b’: ‘i’, ‘r’: ‘j’, ‘o’: ‘k’, ‘w’: ‘l’, ’n’: ‘m’, ‘f’: ’n’, ‘x’: ‘o’, ‘j’: ‘p’, ‘m’: ‘q’, ‘p’: ‘r’, ‘s’: ‘s’, ‘v’: ‘t’, ‘l’: ‘u’, ‘a’: ‘v’, ‘z’: ‘w’, ‘y’: ‘x’, ‘d’: ‘y’, ‘g’: ‘z’}
2. check message and return as dictionary
Solution:
class Solution:
def decodeMessage(self, key, message):
res = ''
d = {' ' : ' ',}
i = 97
for char in key:
if char not in d:
d[char] = chr(i)
i +=1
for char1 in message:
res += d[char1]
return res
Submissions:
Reference:
https://leetcode.com/problems/decode-the-message/discuss/2779497/Python