49. 字母异位词分组:
问题描述:
给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。
示例:
输入: ["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(), arr = [...strs], cmr = [];
for (let i = 0; i < arr.length; i++) {
const item = arr[i].split("").sort().join("");
if (hashMap.has(item)) {
hashMap.get(item).push(arr[i]);
}
else {
hashMap.set(item, [arr[i]]);
}
}
for (const i of hashMap.values()) {
cmr.push(i);
}
return cmr;
};