字母异位词分组
给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
字母异位词 是由重新排列源单词的所有字母得到的一个新单词。
示例 1:
输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]
输出: [["bat"],["nat","tan"],["ate","eat","tea"]]
示例 2:
输入: strs = [""]
输出: [[""]]
示例 3:
输入: strs = ["a"]
输出: [["a"]]
提示:
1 <= strs.length <= 1040 <= strs[i].length <= 100strs[i]仅包含小写字母
题解: 注意map用法
class Solution {
public List<List<String>> groupAnagrams(String[] strs) {
//我把每个单词的加在一起的数和在一起
Map<String,List<String>>m=new HashMap<>();
//key 为排序后的单词 value为结果
for(String str:strs){
char[]c=str.toCharArray();
Arrays.sort(c);
//对字母进行排序
String s=new String(c);
if(m.containsKey(s)){
List <String> l=m.get(s);
l.add(str);
m.put(s,l);
}else{
//没有过
List <String> l=new ArrayList<>();
l.add(str);
m.put(s,l);
}
}
return new ArrayList<List<String>>(m.values());
}
}