编写一种方法,对字符串数组进行排序,将所有变位词组合在一起。变位词是指字母相同,但排列不同的字符串。
注意:本题相对原题稍作修改
示例:
输入: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”], 输出: [ [“ate”,“eat”,“tea”], [“nat”,“tan”], [“bat”] ]
代码
class Solution {
public List
<List
<String>> groupAnagrams(String
[] strs
) {
List
<List
<String>> res
=new ArrayList<>();
Map
<String
,List
<String>> map
=new HashMap<>();
for(String s
:strs
)
{
char[] t
=s
.toCharArray();
Arrays
.sort(t
);
String string
=String
.valueOf(t
);
if(!map
.containsKey(string
))
map
.put(string
,new ArrayList<>());
map
.get(string
).add(s
);
}
res
.addAll(map
.values());
return res
;
}
}