Golang解LeetCode 804. 唯一摩爾斯密碼詞

804. 唯一摩爾斯密碼詞

題目描述

  • 國際摩爾斯密碼定義一種標(biāo)準(zhǔn)編碼方式,將每個(gè)字母對應(yīng)于一個(gè)由一系列點(diǎn)和短線組成的字符串, 比如: "a" 對應(yīng) ".-", "b" 對應(yīng) "-...", "c" 對應(yīng) "-.-.", 等等。

    為了方便,所有26個(gè)英文字母對應(yīng)摩爾斯密碼表如下:

    [".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]
    給定一個(gè)單詞列表,每個(gè)單詞可以寫成每個(gè)字母對應(yīng)摩爾斯密碼的組合。例如,"cab" 可以寫成 "-.-..--...",(即 "-.-." + "-..." + ".-"字符串的結(jié)合)。我們將這樣一個(gè)連接過程稱作單詞翻譯。

    返回我們可以獲得所有詞不同單詞翻譯的數(shù)量。

    例如:
    輸入: words = ["gin", "zen", "gig", "msg"]
    輸出: 2
    解釋:
    各單詞翻譯如下:
    "gin" -> "--...-."
    "zen" -> "--...-."
    "gig" -> "--...--."
    "msg" -> "--...--."

    共有 2 種不同翻譯, "--...-." 和 "--...--.".

注意:

單詞列表words 的長度不會(huì)超過 100。
每個(gè)單詞 words[i]的長度范圍為 [1, 12]。
每個(gè)單詞 words[i]只包含小寫字母。

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/unique-morse-code-words
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。

解法

  • 使用map存儲(chǔ)加密字符串,無重復(fù)的字符串時(shí),計(jì)數(shù)再加一

    func uniqueMorseRepresentations(words []string) int {
        code := [...]string{".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."}
        m := make(map[string]int)
        var ans int
        for _,str := range words{
            var newstr string
            for _,ch := range str{
                newstr += code[int(ch)-97]
            }
            if m[newstr]==0{
                ans++
                m[newstr]=1
            }
        }
        return ans
    }
    
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容