Leetcode--摩爾斯密碼


  國際摩爾斯密碼定義一種標准編碼方式,將每個字母對應於一個由一系列點和短線組成的字符串, 比如: "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))

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM