國際摩爾斯密碼定義一種標准編碼方式,將每個字母對應於一個由一系列點和短線組成的字符串, 比如: "a" 對應 ".-", "b" 對應 "-...", "c" 對應 "-.-.", 等等。
為了方便,所有26個英文字母對應摩爾斯密碼表如下:
[".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]
給定一個單詞列表,每個單詞可以寫成每個字母對應摩爾斯密碼的組合。例如,"cab" 可以寫成 "-.-..--...",(即 "-.-." + "-..." + ".-"字符串的結合)。我們將這樣一個連接過程稱作單詞翻譯,返回我們可以獲得所有詞不同單詞翻譯的數量。
# -*- coding:utf-8 -*- def morse_code_num(str_seq, morse_code): morse_set = set() for s in str_seq: # eg: s = 'abc' # ascii(a) = 97 a的ascii等於97 temp = ''.join([morse_code[ord(i)-97] for i in s]) if temp not in morse_set: morse_set.add(temp) return morse_set morse_code = [".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", \ "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", \ ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.."] str_list = ["gin", "zen", "gig", "msg"] morse = morse_code_num(str_list, morse_code) print('num', len(morse))