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

LeetCode 热题100——49.字母异位词分组

题目:

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

示例 1:

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

输出:[["bat"],["nat","tan"],["ate","eat","tea"]]

解释:

  • 在 strs 中没有字符串可以通过重新排列来形成"bat"

  • 字符串"nat""tan"是字母异位词,因为它们可以重新排列以形成彼此。

  • 字符串"ate""eat""tea"是字母异位词,因为它们可以重新排列以形成彼此。

示例 2:

输入:strs = [""]

输出:[[""]]

示例 3:

输入:strs = ["a"]

输出:[["a"]]

提示:

  • 1 <= strs.length <= 10^4

  • 0 <= strs[i].length <= 100

  • strs[i]仅包含小写字母

题解:

核心要点:

两个字符串是字母异位词,当且仅当它们排序后的结果完全相同。例如 "eat" 和 "tea" 排序后都是 "aet"。

算法步骤:

1.创建一个哈希表 unordered_map<string, vector<string>> mp,键为排序后的字符串,值为原始字符串的列表。

2.遍历输入数组中的每个字符串 str:

3.复制一份到 key,并对 key 进行排序。

4.将原始字符串 str 加入到 mp[key] 对应的列表中。

5.遍历哈希表,将每个 vector<string>(即一组字母异位词)加入到结果 ans 中。

6.返回 ans。

答案:

class Solution { public: vector<vector<string>> groupAnagrams(vector<string>& strs) { unordered_map<string,vector<string>> mp; for(auto str:strs){ string key=str; sort(key.begin(),key.end());//排序后得到键 mp[key].push_back(str);//将原始字符串加入对应组 } vector<vector<string>> ans; for(auto it=mp.begin();it!=mp.end();it++){ ans.push_back(it->second); } return ans; } };
http://www.jsqmd.com/news/577925/

相关文章:

  • Arco Design组件测试终极指南:Jest与Enzyme实战技巧
  • HTML2Canvas进阶技巧:如何提升截图清晰度与兼容性(含TypeScript示例)
  • 从‘爆破’到‘追码’:逆向分析CrackMe时,如何利用lstrlen和lstrcmpA函数定位关键验证点
  • ESP32 WebSocket避坑指南:解决连接不稳定的3个常见问题
  • GHelper完全指南:轻量级替代方案的华硕笔记本性能优化解决方案
  • 公司电脑专供:UnityHub安装Android模块失败的终极排查与修复指南(附Unity 2019/2020双版本方案)
  • JDK升级后asy-captcha验证码报错?手把手教你解决ScriptEngine为null的问题
  • Swashbuckle.AspNetCore 终极指南:OpenAPI 4.0 支持与AI集成未来展望
  • 8元和3元的降AI工具差在哪用数据说话
  • 2026年4月振动传感器品牌推荐,分析里有你心仪的吗?MEMS惯性传感器/陀螺仪/动作捕捉,振动传感器企业找哪家 - 品牌推荐师
  • RecyclerListView内存管理终极指南:RecycleItemPool与高效回收机制详解
  • Java中级面试题
  • 别再让AI瞎猜了!手把手教你为项目创建AGENTS.md文件(附Turbo monorepo实战模板)
  • Docker部署vLLM部署流程
  • 终极Cursor Pro破解教程:告别免费限制,解锁无限AI编程体验
  • DAA程序升级
  • 禽流感病毒(AIV)分子结构解析:核心蛋白与作用机理
  • 精源科技 Kingwall:守护生命之光,为医疗健康筑牢电力安全防线 - 资讯焦点
  • ModelSim/Quartus Il/Vivado与notepad/vs code的关联使用
  • 关联分析——从购物篮到推荐引擎的算法演进
  • CarSim 2024版联合仿真避坑指南:从模型接口配置到结果可视化,新手常踩的5个坑
  • qifu科技工作纪要
  • Jakt语言未来展望:为什么它可能成为下一代系统编程的首选
  • 论文AI率高不等于抄袭2026年高校政策盘点
  • DeepSeek-Coder-V2-Lite-Instruct模型架构演进:从单专家到混合专家系统
  • Redacted Font版本演进历史:从初版到现在的完整功能升级指南
  • 终极指南:Mountpoint for Amazon S3与对象存储服务的完全兼容性分析
  • MATLAB符号运算--对矩阵求逆
  • Cockpit CMS监控与日志:10个实用技巧助你实时追踪系统运行状态
  • 实战应用:定制专属labelimg,快速生成YOLO格式车辆检测数据集