L804唯一摩尔斯密码词
思路与结果
代码
思路1
package Day4_4_17.L804;
import java.util.HashMap;
public class Solution {
public int uniqueMorseRepresentations(String[] words) {
HashMap<Character,String> map1 = new HashMap<>();
String[] ms = {".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."};
for (int i = 0; i < 26; i++) {
map1.put((char)('a'+i),ms[i]);
}
HashMap<String,Integer> map2 = new HashMap<>();
for (int i = 0; i < words.length; i++) {
char[] chars = words[i].toCharArray();
String temp = new String();
for (int i1 = 0; i1 < chars.length; i1++) {
temp = temp.concat(map1.get(chars[i1]));
}
if ( !map2.containsKey(temp) ){
map2.put(temp,1);
}
}
int count = map2.size();
return count;
}
}
思路2
package Day4_4_17.L804;
import java.util.HashSet;
public class Solution2 {
public int uniqueMorseRepresentations(String[] words) {
String[] strs = {".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."};
HashSet<String> set = new HashSet<>();
for (String word : words) {
StringBuilder sB = new StringBuilder();
for (char c : word.toCharArray()) {
sB.append(strs[c - 'a']);
}
set.add(sB.toString());
}
int count = set.size();
return count;
}
}