问题描述
摩尔斯电码定义了一种标准编码,通过将每个字母映射到一系列点和短划线中,如下图所示:
26个字母的完整编码列表为:
{‘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’: ‘–..’}
给定一个单词列表,单词中的每个字母可以写成摩尔斯码。例如,将cba写成-.-.-….-,(把c、b、a的摩尔斯码串接起来)即为一个词的转换,返回所有单词的不同的转换数量。
示例
输入
words=['gin','zen','gig','msg'] ,输出为
2 ,这是因为:
‘gin’ —>‘–…-.’
‘zen’ —>‘–…-.’
‘gig’ —>‘–…–.’
‘msg’ —>‘–…–.’
换句话说这里存在两种不同的转换:’–…-.’和’–…–.’。
代码实现
def morse_representation(words):
# 输入单词列表