思路:用HashMap来保存结果,问题的关键在于key值的选取,怎么保证被打乱字母后还能保证一样的key呢,很明显将被打乱的再排序就行了。
public List<List<String>> groupAnagrams(String[] strs) {
List<List<String>> resultList = new ArrayList<>();
Map<String,List<String>> map=new HashMap<>();
StringBuilder sb=new StringBuilder();
for(String s:strs){
char[] arr=s.toCharArray();
Arrays.sort(arr);
String sortStr=String.valueOf(arr);
List<String> solution=map.get(sortStr);
if(solution==null){
solution=new ArrayList<>();
solution.add(s);
resultList.add(solution);
map.put(sortStr,solution);
}else{
solution.add(s);
}
}
return resultList;
}