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