字母异位词分组 排序法

发布时间:2026/10/7 15:13:29
字母异位词分组 排序法 创建哈希表key 是排序后的值value 为该组所有原始字符串。遍历 strs 数组并拆解为数组后进行排序将排序后的值保存为 key之后使用map.getOrDefault(key, new ArrayList())。如果 map 中已有这个 key取出对应的 list如果没有新建一个空 ArrayList。然后把当前原始字符串str加入 list再放回 map。return new ArrayList(map.values());map.values() 获取所有分组列表包装成 List 返回。设字符串数组长度为 n单个字符串最长字符数为 k时间\(O(nk\log k)\)。每个字符串排序耗时 \(O(k\log k)\)一共 n 个串空间\(O(nk)\)哈希表存储全部字符串排序法 vs 计数法除了基于排序的分组思路还可以使用计数法统计每个字符的出现次数来生成分组 key。两种方法在时间、空间和适用场景上各有侧重对比如下维度排序法计数法时间复杂度\(O(nk\log k)\)每个字符串排序耗时 \(O(k\log k)\)\(O(nk)\)每个字符串只需统计字符出现次数空间复杂度\(O(nk)\)哈希表存储全部字符串\(O(nk)\)哈希表存储全部字符串但单个 key 的构造额外需要 \(O(k)\) 的计数数组适用场景字符串长度较短、字符集较大或字符分布较分散时更直观字符串长度较长、字符集固定且较小如仅含小写字母时更高效计数法的优势在于当字符集固定且规模较小例如题目限定只包含小写字母时每个字符串只需线性扫描一次即可完成统计省去了排序的 \(O(k\log k)\) 开销整体时间复杂度从 \(O(nk\log k)\) 降为 \(O(nk)\)在字符串数量多、单串较长的情况下性能优势更明显。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询