题目:
我的解法:排序
class Solution {
public List<List<String>> groupAnagrams(String[] strs) {
List<List<String>> ans = new ArrayList<List<String>>();
Map<String, List<String>> map = new HashMap<String, List<String>>();
for(String s: strs){
// 将字符串转换为字符数组,排序后比较两个数组是否相同
char[] array = s.toCharArray();
Arrays.sort(array);
String str = String.valueOf(array);
if(map.containsKey(str)){
map.get(str).add(s);
}else{
map.put(str, new ArrayList<String>(){{
add(s);
}});
}
}
for(String str: map.keySet()){
if(map.get(str)!=null){
ans.add(map.get(str));
}
}
return ans;
}
}
官方题解:
附:哈希表的遍历方式