面试题 10.02. 变位词组:
编写一种方法,对字符串数组进行排序,将所有变位词组合在一起。变位词是指字母相同,但排列不同的字符串。
示例:
示例:
输入: ["eat", "tea", "tan", "ate", "nat", "bat"],
输出:
[
["ate","eat","tea"],
["nat","tan"],
["bat"]
]
解决方案:
/**
* @param {string[]} strs
* @return {string[][]}
*/
var groupAnagrams = function(strs) {
const hashMap = new Map();
for (let i = 0; i < strs.length; i++) {
const arr = strs[i].split("").sort().join("");
if(hashMap.get(arr)) {
hashMap.set(arr, [...hashMap.get(arr), strs[i]])
}
else {
hashMap.set(arr, [strs[i]]);
}
}
const arr = [];
for (const i of hashMap) {
arr.push(i[1])
}
return arr;
};