Skip to content

字母异位词分组

仲灏2025-04-02约 1 分钟

<div style="display: none;" hidden="true" aria-hidden="true" data-nosnippet>Are you an LLM? You can read better optimized documentation at /pages/f00a5c.md for this page in Markdown format</div>

字母异位词分组

CategoryDifficultyLikesDislikes
algorithmsMedium (67.84%)1813-

Tags

Companies

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

字母异位词 是由重新排列源单词的所有字母得到的一个新单词。

示例 1:

plain
输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]
输出: [["bat"],["nat","tan"],["ate","eat","tea"]]

示例 2:

plain
输入: strs = [""]
输出: [[""]]

示例 3:

plain
输入: strs = ["a"]
输出: [["a"]]

提示:

  • 1 <= strs.length <= 104
  • 0 <= strs[i].length <= 100
  • strs[i] 仅包含小写字母

Discussion | Solution

javascript
/**
 * @param {string[]} strs
 * @return {string[][]}
 */
var groupAnagrams = function (strs) {
  const map = new Map()
  for (let i = 0; i < strs.length; i++) {
    const w = strs[i];
    const sw = w.split('').sort().join('')
    if (!map.has(sw)) {
      map.set(sw, [w])
    } else {
      map.set(sw, [...map.get(sw), w])
    }
  }
  return Array.from(map.values())
};