Python 中独特的摩尔斯电码单词
pythonserver side programmingprogramming更新于 2023/11/9 21:45:00
假设我们有一个单词列表,这里每个单词都可以写成每个字母的摩尔斯电码的串联。例如,单词"cba"可以写成"-.-..--...",这是串联"-.-."|"-..."|".-"。这种连接称为单词的变换。
我们知道国际摩尔斯电码定义了一种标准编码,其中每个字母都映射到一系列的点和划,如下所示:"a"映射到".-","b"映射到"-...","c"映射到"-.-.",依此类推。
以下是所有 26 个英文字母的列表 −
[".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--" ,"-.","---",".--.","--.-",".-.","...","- ","..-","...-",".--","-..-","-.--","--.."]
因此,如果输入是这样的 ["gin", "zen", "gig", "msg"],那么输出将是 2,因为每个单词的变换是:"gin"将是"--...-.","zen"将是"--...-."" "gig" 将是 "--...--." 而 "msg" 将是 "--...--."。
为了解决这个问题,我们将遵循以下步骤 −
- morse_codes:= [".-","-...","-.-.","-..","."..-.","--.","....","..",".---","-.-",".-..","--"- .","---",".--.","--.-",".-.","...","-","..-","...-",".-","-..-","-.-","-.--","--..","--..","--.."]
- s:=一个新的集合
- 对于 words 中的每个单词,执行
- temp:= 空白字符串
- 对于 word 中的每个 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