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