leetcode-49. 字母异位词分组
-
-
拆分这个词为char[]数组,经过排序char[]数组,再转换为字符串key,如果有两个key是一样的,就说明这两个词为异位词
-
把这个key当作map集合的键,维护一个list作为map的值,每次如果
class Solution {
public List<List<String>> groupAnagrams(String[] strs) {
Map<String, List<String>> map = new HashMap<>();
for(String str : strs){
//首先根据题意得知,异位词中字母相同
char[] chars = str.toCharArray();//拆分这个词为char[]数组
Arrays.sort(chars); //经过排序char[]数组
String key = new String(chars); //再转换为字符串key,如果有两个key是一样的,就说明这两个词为异位词
List<String> list = map.getOrDefault(key, new ArrayList<>()); //把这个key当作map集合的键,维护一个list作为map的值,如果没搜到相同的key就新建一个list
list.add(str); //每次如果搜到了相同的key就添加到list里
map.put(key, list);
}
return new ArrayList<>(map.values());
}
}