题解
public static List<List<String>> groupAnagrams(String[] strs) {
Map<String,Integer> map =new HashMap<>();
List<List<String>> list=new ArrayList<>();
for (String str : strs) {
char[] arr = str.toCharArray();
Arrays.sort(arr);
String s=new String(arr);
if (map.containsKey(s)) {
list.get(map.get(s)).add(str);
} else {
map.put(s, map.size());
list.add(new ArrayList<>());
list.get(map.get(s)).add(str);
}
}
return list;
}
运用map来加快搜索,键设置为排序过的字符串,值设置为该类字符串在list中的下标号,使用map.size()来快速完成下标递增。
如果要优化的话,就在map存储的键中字符串的对比,每个都采用重新sort并组合的效率过低,可以另设一函数来进行对比。