LeetCode简单题之唯一摩尔斯密码词
題目
國際摩爾斯密碼定義一種標準編碼方式,將每個字母對應于一個由一系列點和短線組成的字符串, 比如:
‘a’ 對應 “.-” ,
‘b’ 對應 “-…” ,
‘c’ 對應 “-.-.” ,以此類推。
為了方便,所有 26 個英文字母的摩爾斯密碼表如下:
[".-","-…","-.-.","-…",".","…-.","–.","…","…",".—","-.-",".-…","–","-.","—",".–.","–.-",".-.","…","-","…-","…-",".–","-…-","-.–","–…"]
給你一個字符串數組 words ,每個單詞可以寫成每個字母對應摩爾斯密碼的組合。
例如,“cab” 可以寫成 “-.-…–…” ,(即 “-.-.” + “.-” + “-…” 字符串的結合)。我們將這樣一個連接過程稱作 單詞翻譯 。
對 words 中所有單詞進行單詞翻譯,返回不同 單詞翻譯 的數量。
示例 1:
輸入: words = [“gin”, “zen”, “gig”, “msg”]
輸出: 2
解釋:
各單詞翻譯如下:
“gin” -> “–…-.”
“zen” -> “–…-.”
“gig” -> “–…--.”
“msg” -> “–…--.”
共有 2 種不同翻譯, “–…-.” 和 “–…--.”.
示例 2:
輸入:words = [“a”]
輸出:1
提示:
1 <= words.length <= 100
1 <= words[i].length <= 12
words[i] 由小寫英文字母組成
來源:力扣(LeetCode)
解題思路
??將對應的字符翻譯成摩斯密碼就行。需要先對摩斯密碼建立對應的字典,然后遍歷words翻譯,最后去重統計不重樣的數量。
class Solution:def uniqueMorseRepresentations(self, words: List[str]) -> int:s=[".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]d=dict()for i in range(97,123):d[chr(i)]=s[i-97]temp=set()for i in words:c=''for j in i:c+=d[j]temp.add(c)return len(temp)
總結
以上是生活随笔為你收集整理的LeetCode简单题之唯一摩尔斯密码词的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode简单题之子数组最大平均数
- 下一篇: LeetCode简单题之作为子字符串出现