国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: "a"
对应 ".-"
, "b"
对应 "-..."
, "c"
对应 "-.-."
, 等等。
本题中所给出的26个字母对应的摩尔斯密码值如下
[".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]
这个题总体来说的难度应该在于字符串的拼接以及一个统计处理,还是挺水的不过一些点还是有必要提一下
代码送上!
class Solution:
def uniqueMorseRepresentations(self, words):
"""
:type words: List[str]
:rtype: int
"""
alpha = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]
morse = [".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]
morse_alpha = dict(zip(alpha,morse))
temp = set()
for index in words:
temp_morse = []
for i in index:
temp_morse.append(morse_alpha[i])
s=''.join(temp_morse)
temp.add(s)
return len(temp)
基本思路:
先生成一本字典留以备用,然后遍历words中的单词,遍历单词字母时,新建列表存一下每个字母的对应摩尔斯密码值,再进行字符串拼接,最后存(tou)入(gong)集(jian)合(liao),统计数据
坑:
基本是零坑任踏,但是!还是!有些东西要说!
Python有三种基本的字符串拼接操作,详细内容另寻高明,这里只是粗略一说(真的是粗略的!!!)
1.“+”拼接,这个最方便,不过效率也最低,因为每次拼接之后都需要重新申请新的内存空间,但就本题来说是一个有些麻烦的操作
2.join拼接,如上述代码的操作,多次拼接而不需要重复申请内存,经济实惠,尤其是对于拼接list中的字符串,基本首选了吧估计
3.格式化处理,这个其实是非常方便常用的,这里只是不适合本题而已,具体例子我也没想好..*-*
正年少 多逍遥 亦是渐觉风光好