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 }