当前位置: 首页 > news >正文

49.字母异位词分组

给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
//字母异位词是通过重新排列不同单词或短语的字母而形成的单词或短语,并使用所有原字母一次。

思路:将集合中的所有字符串进行排序处理,再将排序后的相同的字符串放入同一个vector中,所以可以使用unordered_map,其中键为排序后的字符串,值为排序后相同的字符串的集合(就是将排序后相同的字符串的原始字符串放入同一个vector中)
我们需要遍历一次字符串,但这样太慢了,所以我们可以直接引用字符串,因为不对集合进行修改,所以我们需要复制原字符串,再将复制的字符串进行排序,以此作为该字符串的分组标识,排序使用std::sort
为避免内存消耗过多,我们需要预分配内存来避免push_back的多次扩容
避免重复拷贝,我们可以使用std::move来将其存储
最后我们需要一个vector<vector>容器来存储结果列表
代码:

class Solution {
public:vector<vector<string>> groupAnagrams(vector<string>& strs) {unordered_map<string,vector<string>> map;for(auto& c:strs){auto t = c;sort(t.begin(),t.end());map[t].push_back(c);}vector<vector<string>> ans;ans.reserve(map.size());for(auto& [key,value]:map){ans.push_back(move(value));}return ans;}
};

时间复杂度:O(NLlog L)
空间复杂度:O(N*L)

http://www.jsqmd.com/news/437024/

相关文章:

  • 从零起步掌握SEO技能,稳步提升网站流量与优化效果
  • 信息学奥赛一本通1359:围成面积 ← Flood fill
  • 考虑柔性负荷的综合能源系统低碳经济调度探索
  • 明天就要开学。
  • 快板厂pcb4层板打样哪家快又稳
  • 2026年3月武汉装修一条龙公司最新推荐,聚焦全屋定制与全案交付能力 - 品牌鉴赏师
  • 在 React 中,什么情况下需要用 useCallback 和 useMemo?它们的区别是什么?
  • 3月4日(121-123题)
  • 十二层PCB选型指南:2026高速电路板厂商排名
  • PCB四层板哪家好?5大厂商综合评测排名
  • 无线数采网关有哪些功能特点
  • 某能源企业AI转型:提示工程架构师介入后,设备故障率降18%
  • 风机润滑数据采集物联网解决方案
  • 2026最新 | 3款离线免费pdf转word工具软件推荐,教你选对不踩坑
  • 云原生网关 Ingress-Nginx 链路追踪实战:OpenTelemetry 采集与观测云集成方案
  • ElasticSearch核心原理详解
  • 基于 YOLO26 的电瓶车自行车智能检测(中英文双版) | 附完整源码与效果演示
  • XTDrone平台下创建自己的world文件并运行
  • 基于YOLO26的5类常见水果检测系统(中英文双版) | 附完整源码与效果演示
  • 高量程电导率TDS盐度测定仪
  • 模块化与组件化:90%的前端开发者都没搞懂的本质区别
  • 人工智能之数字生命-本能动作体系规范(任务/方法/本能方法函数)
  • 书匠策AI:解锁课程论文高效写作的“智慧密钥”
  • 工业防爆小型气象站
  • [特殊字符]书匠策AI:解锁课程论文新境界,让学术写作如行云流水![特殊字符]
  • 自然语言处理 —— 语言资源
  • 智能考试系统核心模块回归测试:从基础数据到业务闭环的深度验证
  • 逻辑回归实战:从原理到不平衡数据优化(含欠拟合/过拟合诊断与召回率提升) - 教程
  • 自然语言处理 —— 简介
  • 止痒去屑洗发水怎么选?2026年热门品牌大盘点,去油去屑洗发水/去屑洗发水/止痒去屑洗发水,止痒去屑洗发水产品排行榜单 - 品牌推荐师