力扣刷题日记-49-字母异位词分组

80 阅读1分钟
  • 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。

字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。


/**
 * @param {string[]} strs
 * @return {string[][]}
 */
var groupAnagrams = function(strs) {
    const res = []
    const map = new Map()
    const len = strs.length
    for(let i = 0; i < len; i++){
        let str = strs[i]
        str = str.split('').sort((a,b) => a.localeCompare(b)).join('')
        if(map.has(str)){
            map.get(str).push(i)
            continue
        }
        map.set(str, [i])
    }
    map.forEach(item => {
        const arr = []
        for(let j = 0; j < item.length; j++){
            arr.push(strs[item[j]])
        }
        res.push(arr)
    })
    return res
};