Python 中唯一的莫爾斯電碼單詞
假設我們有一系列單詞,這裡每個單詞都可以寫成每個字母的莫爾斯電碼的連線。例如,單詞“cba”可以寫成“-.-..--...” ,這是連線“-.-.” | "-..." | ".-")。這種連線稱為單詞的轉換。
我們知道國際莫爾斯電碼定義了一種標準編碼,其中每個字母都對映到一系列點和短劃線,如下所示:“a”對映到“.-”,“b”對映到“-...”,“c”對映到“-.-.”,依此類推。
以下是所有 26 個英文字母的列表:
[".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","- ","..-","...-",".--","-..-","-.--","--.."]
因此,如果輸入類似於 ["gin", "zen", "gig", "msg"],則輸出將為 2,因為每個單詞的轉換是:“gin”將為“--...-.”,“zen”將為“--...-.”“gig”將為“--...--.”,“msg”將為“--...--.”。
要解決此問題,我們將遵循以下步驟:
- morse_codes:= [".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]
- s:= 一個新的集合
- 對於 words 中的每個單詞,執行以下操作
- temp:= 空字串
- 對於單詞中的每個字元 c,執行以下操作
- temp := temp + morse_codes[c 的 ASCII 碼 - 97]
- 將 temp 新增到 s 中
- 返回 s 的大小
讓我們看看以下實現以獲得更好的理解:
示例
class Solution:
def uniqueMorseRepresentations(self, words):
morse_codes=[".-","-...","-.-.","-..",".","..-.","--
.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-
.","...","-","..-","...-",".--","-..-","-.--","--.."]
s=set()
for word in words:
temp=''
for c in word:
temp+=morse_codes[ord(c)-97]
s.add(temp)
return len(s)
ob = Solution()
print(ob.uniqueMorseRepresentations(["gin", "zen", "gig", "msg"]))輸入
["gin", "zen", "gig", "msg"]
輸出
2
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP