题目思路:
本题思路主要是考研哈希,我们可以从题目中了解到这个字符串数组分组后的每个分组,里面包含的元素相同,但是排序不同,那么我们可以得知每个分组里的字符串进行abcd的这种排序之后是相同的结果,所以我们就可以把排序过后的结果当做key,最后按照key去分组聚合就可以了。
我们首先得到这个key,然后如果key存在,就直接add进去,不存在就先new一个List再add就可以了
class Solution {
public List<List<String>> groupAnagrams(String[] strs) {
Map<String,List<String>> map = new HashMap<>();
for(int i = 0 ;i<strs.length;i++){
char []c = strs[i].toCharArray();
Arrays.sort(c);
String s = String.valueOf(c);
if(map.containsKey(s)){
map.get(s).add(strs[i]);
}else{
map.put(s,new ArrayList<>());
map.get(s).add(strs[i]);
}
}
return new ArrayList<List<String>>(map.values());
}
}