根据字符串所包含的字母类型对字符串进行分类,可以想到利用HashMap保存一个公有的key,然后将该与该key对应的字符串都放入到该entry的value中。
如何生成一个公有的key?可以提取出每个字符并进行排序,这样只要是含有相同字符的字符串经过处理后都能得到相同的key,从而实现分类。
class Solution {
public List<List<String>> groupAnagrams(String[] strs) {
if(strs.length == 0)return new ArrayList<>();
Map<String, List> map = new HashMap<>();
for(String str : strs){
char[] ch = str.toCharArray();
Arrays.sort(ch);
String s = String.valueOf(ch);
if(!map.containsKey(s)){
map.put(s, new ArrayList<>());
}
map.get(s).add(str);
}
return new ArrayList(map.values());
}
}