题目描述:
给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。
考察重点:转为char[]数组进行排序,之后再转为String并结合Map进行分组。需要注意:char[]数组不能作为Map的键参考博客
public List> groupAnagrams(String[] strs) { Map
> map = new HashMap<>(); for(int i = 0;i < strs.length;i ++){ char[] temp = strs[i].toCharArray(); Arrays.sort(temp); String s = String.valueOf(temp); if(map.containsKey(s)){ map.get(s).add(strs[i]); }else{ ArrayList list = new ArrayList (); list.add(strs[i]); map.put(s, list); } } List > res = new ArrayList<>(); map.forEach((k, v) -> {res.add(v);}); return res; }



