197、唯一莫爾斯密碼詞

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

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

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

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

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

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

注意:

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

注意的是Set對於StringBuilder,莫名的有錯誤,即使是new還是不new都會出錯,也不知道怎麼回事,換成String就好了

class Solution {
    public int uniqueMorseRepresentations(String[] words) {
        
		String [] strings = {".-","-...","-.-.","-..",".","..-.","--.","....","..",".---",
				"-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."};

		Set<String> tem = new HashSet<>();
		String sb = new String();
		for (int i = 0; i < words.length; i++) {
		//	sb.delete(0, sb.length());
			sb = "";
			for (int j = 0; j < words[i].length(); j++) {
				sb += strings[words[i].charAt(j) - 97];
			}			
			tem.add(sb);
		//	System.out.println(sb.toString());
		}
	//	System.out.println(tem.toString());
		return tem.size();   
    }
}

他這個就可以,難道轉成toString就好了???
我就直接使用加來實現了

class Solution {
    public int uniqueMorseRepresentations(String[] words) {
        int baseIndex = 97;
        Set<String> set = new HashSet<>();
        for (String word : words) {
        	int lenght = word.length();
        	StringBuilder sb = new StringBuilder();
			for (int i = 0; i < lenght; i++) {
				sb.append(morse[word.charAt(i) - baseIndex]);
			}
			set.add(sb.toString());
		}
        return set.size();
    }
    
    String[] morse = {
        ".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."
    };
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章