字母异位词分组

70 阅读1分钟

思路

1.把数组里面的字符串按照大小排列,有相同就push到map的value里面

2.[...map.values()]去除map的每一项到数组里面返回

/*
 * @lc app=leetcode.cn id=49 lang=javascript
 *
 * [49] 字母异位词分组
 */

// @lc code=start
/**
 * @param {string[]} strs
 * @return {string[][]}
 */
var groupAnagrams = function (strs) {
  const map = new Map()
  const L = strs.length
  for (let i = 0; i < L; i++) {
    // 按照字母大小排序
    const key = strs[i].split('').sort().join('')
    if (!map.has(key)) {
      map.set(key, [strs[i]])
    } else {
      map.get(key).push(strs[i])
    }
  }

  return [...map.values()]
}
// @lc code=end