[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
keyas the order of the substitution table. - Align the substitution table with the regular English alphabet.
- Each letter in
messageis 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 resSubmissions:
Reference:
https://leetcode.com/problems/decode-the-message/discuss/2779497/Python
