Python中独特的摩尔斯电码词
假设我们有一个单词列表,每个单词都可以写成每个字母的摩尔斯电码的串联形式。例如,单词“cba”可以写为“-.-..--...”,这是串联“-.-。”。|“-...”|“.-”)。这种级联称为单词转换。
我们知道国际摩尔斯电码定义了一种标准编码,其中每个字母都映射到一系列点和破折号,如下所示:“a”映射到“.-”,“b”映射到“-...”,“c”映射到“-.-。”,依此类推。
这是英文字母的所有26个字母的列表如下-
[“.-”,“-...”,“-.-。”,“-..”,“。”,“..-。”,“-。”,“....”,“..”,“.---”,“-.-”,“.-..”,“-”,“-。”,“---”,“.--。”,“--.-“,”.-。“,”...“,”-“,”..-“,”...-“,”.--“,”-..-“,”-。-“,”-..“]
因此,如果输入类似于[“gin”,“zen”,“gig”,“msg”],则输出将为2,因为每个单词的转换为:“gin”将为“-。”。.-。”,“zen”将是“--...-。”“演出”将是“--...--”。而“msg”将是“--...--。”。
为了解决这个问题,我们将遵循以下步骤-
morse_codes:=[“.-”,“-...”,“-.-。”,“-..”,“。”,“..-。”,“-。”,“...。“,”..“,”.---“,”-.-“,”.-..“,”-“,”-。“,”---“,”.--。“,“--.-”,“.-。”,“...”,“-”,“..-”,“...-”,“.--”,“-..-”,“-.--”,“-..”]
s:=新集
对于单词中的每个单词,
temp:=temp+morse_codes[ASCII的c-97]
temp:=空字符串
对于单词中的每个c,
将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