Python编程:独特的摩尔斯电码

问题描述

 摩尔斯电码定义了一种标准编码,通过将每个字母映射到一系列点和短划线中,如下图所示:

《Python编程:独特的摩尔斯电码》

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’ —> ‘–…–.’

换句话说这里存在两种不同的转换:’–…-.’和’–…–.’。

代码实现

运行结果

点赞

发表评论

邮箱地址不会被公开。 必填项已用*标注

2 + 6 =