Given an array of strings, group anagrams together.
For example, given: ["eat", "tea", "tan", "ate", "nat", "bat"]
,
Return:
[ ["ate", "eat","tea"], ["nat","tan"], ["bat"] ]
Note: All inputs will be in lower-case.
将字符串转成字符数组后排序,再转成字符串将其放到map的key中方便进行比对
public class Solution {
public List<List<String>> groupAnagrams(String[] strs) {
Map<String, List<String>> map = new HashMap<>();
for(String str : strs){
char[] ca = str.toCharArray();
Arrays.sort(ca);
String temp = String.valueOf(ca);
if(!map.containsKey(temp)) map.put(temp, new ArrayList());
map.get(temp).add(str);
}
return new ArrayList(map.values());
}
}