![]()
解题思路:需要使用hashmap,定义是(<String,List()>)遍历数组内每一个字符串,转为字符数组后用Arrays.sort()排序,如果hashmap.containsKey没有对应的key,就将排序后的字符数组转回字符串(new String(arr)),以(s_new,new List())的形式put进入hashmap,然后将原来的字符串add如字符列表中,然后下一轮遍历。直到最后所有都放进去再用list.addAll(hashmap.values())的方式返回list。
import java.util.Arrays;
class Solution {
public List<List<String>> groupAnagrams(String[] strs) {
List<List<String>> list = new ArrayList<>();
Map<String,List<String>> hashmap = new HashMap<>();
for(String str:strs){
char[] arr = str.toCharArray();
Arrays.sort(arr);
String s = new String(arr);
if(!hashmap.containsKey(s)){
hashmap.put(s,new ArrayList<String>());
}
hashmap.get(s).add(str);
}
list.addAll(hashmap.values());
return list;
}
}