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

【字母异位分组】

在这里插入图片描述

思路

核心思路:使用排序后的字符串作为键,将原始字符串分组

  1. 键的选择:对于每个字符串,将其排序后得到标准形式作为键
  2. 分组存储:使用哈希表,键是排序后的字符串,值是对应的原始字符串列表
  3. 结果构建:遍历哈希表,将每个分组添加到结果中

实现分析

class Solution {
public:vector<vector<string>> groupAnagrams(vector<string>& strs) {// 步骤1:创建哈希表,键是排序后的字符串,值是原始字符串列表unordered_map<string, vector<string>> mp;// 步骤2:遍历所有字符串for(auto& str : strs) {string key = str;           // 复制原字符串sort(key.begin(), key.end()); // 排序得到标准键mp[key].emplace_back(str);   // 将原字符串添加到对应分组}// 步骤3:构建结果vector<vector<string>> ans;for(auto it = mp.begin(); it != mp.end(); it++) {ans.emplace_back(it->second); // 将每个分组添加到结果中}return ans;}
};
1. 哈希表初始化
unordered_map<string, vector<string>> mp;
  • 键(key):排序后的标准字符串
  • 值(value):具有相同字母组成的原始字符串列表
2. 处理每个字符串
for(auto& str : strs) {string key = str;           // 创建副本sort(key.begin(), key.end()); // 排序得到标准键mp[key].emplace_back(str);   // 分组存储
}
  • 对于 "eat":排序后 key = "aet",存储 ["eat"]
  • 对于 "tea":排序后 key = "aet",存储 ["eat", "tea"]
  • 对于 "tan":排序后 key = "ant",存储 ["tan"]
3. 构建结果
vector<vector<string>> ans;
for(auto it = mp.begin(); it != mp.end(); it++) {ans.emplace_back(it->second);
}
  • 将哈希表中的每个值(字符串列表)添加到结果中
http://www.dtcms.com/a/346672.html

相关文章:

  • 火车头使用Post方法采集Ajax页面教程
  • 量子计算驱动的Python医疗诊断编程前沿展望(中)
  • kubernetes-dashboard使用http不登录
  • 快速了解命令行界面(CLI)的行编辑模式
  • PyTorch框架之图像识别模型与训练策略
  • 一键部署开源 Coze Studio
  • 蓝牙链路层状态机精解:从待机到连接的状态跃迁与功耗控制
  • 全面解析了Java微服务架构的设计模式
  • 新疆地州市1米分辨率土地覆盖图
  • GOLANG 接口
  • 可自定义的BMS管理系统
  • 论文阅读:Inner Monologue: Embodied Reasoning through Planning with Language Models
  • SpringBoot 自动配置深度解析:从注解原理到自定义启动器​
  • 【JVM】JVM的内存结构是怎样的?
  • 调味品生产过程优化中Ethernet/IP转ProfiNet协议下施耐德 PLC 与欧姆龙 PLC 的关键通信协同案例
  • 字符串的大小写字母转换
  • linux中文本文件操作之grep命令
  • Linux-常用文件IO函数
  • Java:类及方法常见规约
  • UE5多人MOBA+GAS 53、测试专属服务器打包和连接,以及配置EOS
  • linux编程----网络通信(TCP)
  • 利用Prometheus监控服务器相关数据
  • SpringBoot自动配置原理解析
  • 本地文件夹即时变身 Web 服务器(文件服务器)
  • Linux问答题:归档和传输文件
  • Reactor 反应堆模式
  • 《解构React Server Components:服务端序列化与流式传输的底层逻辑》
  • 为什么在WHERE子句里使用函数,会让索引失效
  • 中农具身导航赋能智慧农业!AgriVLN:农业机器人的视觉语言导航
  • 【数据结构】计数排序:有时比快排还快的整数排序法