声明:只求用最简单的方法通过,不求优化,不喜勿喷
- 对每个单词先分割成字符数组,然后sort排序再组合,变成按照asc码排序的唯一确定顺序的组合
- 判断这个组合有没有出现过,出现过就算放入同类数组;反之就新建一个数组放入。这里用的js的object的key-value来存储,key是之前转换好的唯一确定的排序好的组合,value如果是undefined就是没有出现过,新建数组放入结果集,并且把key对应的value赋值为新建数组在结果集的下标。
- 优化todo
/**
* @param {string[]} strs
* @return {string[][]}
*/
var groupAnagrams = function (strs) {
var obj = {
};
let re = [];
for (var i = 0; i < strs.length; i++) {
let key = strs[i].split('').sort().join('');
if (typeof obj[key] == 'undefined') {
re.push([strs[i]]);
obj[key] = re.length - 1;
} else {
re[obj[key]].push(strs[i]);
}
}
return re;
};