class Solution {
public List<List<String>> groupAnagrams(String[] strs) {
// 利用hash键唯一的特性
Map<String, List<String>> map = new HashMap<String, List<String>>();
List<String> list;
char[] array;
String key ;
//遍历
for (String str : strs){
//字符串解构
array = str.toCharArray();
// 排序
Arrays.sort(array);
// 重构字符串
key = new String(array);
//新建列表提取同字母异位词列表
list = map.getOrDefault(key , new ArrayList<String>());
// 添加异位词
list.add(str);
//放回map
map.put(key,list);
}
// 返回全部值
return new ArrayList<List<String>>(map.values());
}
}
function groupAnagrams(strs: string[]): string[][] {
const map = new Map();
let key:string,array:string[],list:Array<string>;
for(let str of strs){
array = Array.from(str);
array.sort();
key = array.toString();
list = map.get(key) ? map.get(key) : new Array();
list.push(str);
map.set(key,list);
}
return Array.from(map.values());
};