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