package com.imooc.leetCode;
import java.util.*;
/**
* @author tangxuejun
* @version 2018/10/8 11:45 AM
* 国际摩尔斯密码定义一种标准编码方式,
* 将每个字母对应于一个由一系列点和短线组成的字符串,
* 比如: "a" 对应 ".-", "b" 对应 "-...", "c" 对应 "-.-.", 等等。
*/
public class LeetCode804 {
public static void main(String[] args) {
System.out.println(uniqueMorseRepresentations(new String[]{"gin", "zen", "gig", "msg"}));
}
public static int uniqueMorseRepresentations(String[] words) {
//1.列举所有摩斯密码
List<String> morseList = Arrays.asList(".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--..");
Map<Character, String> morseMap = new HashMap<>();
char temp = 'a';
for (String s : morseList) {
morseMap.put(temp, s);
temp++;
}
//2.新建Set
Set<String> set = new HashSet<>();
for (String word : words) {
StringBuilder sb = new StringBuilder();
for (String s : word.split("")) {
if (morseMap.containsKey(s.charAt(0))) {
sb.append(morseMap.get(s.charAt(0)));
}
}
set.add(sb.toString());
}
return set.size();
}
}
LeetCode804
最新推荐文章于 2022-07-10 21:03:42 发布