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]只包含小寫字母。
class Solution {
public int uniqueMorseRepresentations(String[] words) {
String[] strings = new String[]{".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.."};
HashSet<String> list = new HashSet<>();
for (String word : words) {
String s = "";
char[] c = word.toCharArray();
for (char x : c) {
s += strings[x - 'a'];
}
System.out.println(s);
list.add(s);
}
return list.size();
}
}