1. 程式人生 > >[LeetCode javaScript] 804. 唯一摩爾斯密碼詞

[LeetCode javaScript] 804. 唯一摩爾斯密碼詞

國際摩爾斯密碼定義一種標準編碼方式,將每個字母對應於一個由一系列點和短線組成的字串, 比如: “a” 對應 “.-”, “b” 對應 “-…”, “c” 對應 “-.-.”, 等等。

為了方便,所有26個英文字母對應摩爾斯密碼錶如下:

[".-","-…","-.-.","-…",".","…-.","–.","…","…",".—","-.-",".-…","–","-.","—",".–.","–.-",".-.","…","-","…-","…-",".–","-…-","-.–","–…"] 給定一個單詞列表,每個單詞可以寫成每個字母對應摩爾斯密碼的組合。例如,“cab” 可以寫成 “-.-.-…-”,(即 “-.-.” + “-…” + ".-"字串的結合)。我們將這樣一個連線過程稱作單詞翻譯。

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

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

共有 2 種不同翻譯, “–…-.” 和 “–…--.”.

注意:

單詞列表words 的長度不會超過 100。 每個單詞 words[i]的長度範圍為 [1, 12]。 每個單詞 words[i]只包含小寫字母。

/**
 * @param {string[]} words
 * @return {number}
 */
var uniqueMorseRepresentations = function(words) {
   var mima = [".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."];
    var getOne=function(word){
        var str="";
        for(var i=0;i<word.length;i++){
            str+=mima[word.charCodeAt(i)-97];          
        }
         return str;
    }
    var jj={};
    var count=0;
    for(var i=0;i<words.length;i++){
        if(!jj[getOne(words[i])]){
            count++;
            jj[getOne(words[i])]=1;
        }
    }
    return count;
};