题目要求
- International Morse Code defines a standard encoding where each letter is mapped to a series of dots and dashes, as follows: "a" maps to ".-", "b" maps to "-...", "c" maps to "-.-.", and so on.
- Now, given a list of words, each Word can be written as a concatenation of the Morse code of each letter. For example, "cba" can be written as "-.-..--...", (which is the concatenation "-.-." + "-..." + ".-"). We'll call such a concatenation, the transformation of a Word.
- Return the number of different transformations among all words we have.
题目分析及思路
题目给出摩斯码的编码规则, 要求返回所有单词不同 transformation 的个数. 找出多少种不同的情况, 可以用 len(set()) 的方式进行处理. 摩斯码和字母的对应关系可以用字典.
python 代码?
- class Solution:
- def uniqueMorseRepresentations(self, words):
- """
- :type words: List[str]
- :rtype: int
- """morse = [".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]
- letter = ['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']
- mldict = dict(zip(letter,morse))
- res = set()
- for Word in words:
- mword = ""
- for w in Word:
- mword = mword + mldict[w]
- res.add(mword)
- return len(res)
来源: http://www.bubuko.com/infodetail-2906913.html