题目:
国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如:
'a'
对应 ".-"
,'b'
对应 "-..."
,'c'
对应 "-.-."
,以此类推。为了方便,所有 26
个英文字母的摩尔斯密码表如下:
[".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]
给你一个字符串数组 words
,每个单词可以写成每个字母对应摩尔斯密码的组合。
示例 1:
输入: words = ["gin", "zen", "gig", "msg"] 输出: 2 解释: 各单词翻译如下: "gin" -> "--...-." "zen" -> "--...-." "gig" -> "--...--." "msg" -> "--...--." 共有 2 种不同翻译, "--...-." 和 "--...--.".
示例 2:
输入:words = ["a"] 输出:1
代码:
class Solution:
def uniqueMorseRepresentations(self, words: List[str]) -> int:
mos=[".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]
a=[chr(i).lower() for i in range(65,91)]
b=list(zip(a,mos))#zip重组,字母对摩斯密码一一映射
d={}
for i in b:
d[i[0]]=i[1]
c=[]
r=''
a=r[::]
for i in words:
for j in i:
r+=d[j]
c.append(r)
r=a#初始化r
l=len(set(c))
return l