当前位置: 首页 > 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.xdnf.cn/news/1355005.html

相关文章:

  • 随机森林1
  • 【机器学习深度学习】多模态学习
  • 【GaussDB】使用MySQL客户端连接到GaussDB的M-Compatibility数据库
  • 【85页PPT】数字化转型LIMS大型企业智能制造之LIMS实验室管理系统产品解决方案(附下载方式)
  • MVC模式在个人博客系统中的应用
  • 简单介绍计算机的工作过程
  • 激光雷达工作原理
  • 算法训练营day59 图论⑨ dijkstra(堆优化版)精讲、Bellman_ford 算法精讲
  • C++初阶(2)C++入门基础1
  • 第1篇:走进日志框架的世界 - 从HelloWorld到企业级应用
  • 为什么在WHERE子句里使用函数,会让索引失效
  • 复杂工业场景误报率↓85%!陌讯多模态火焰识别算法实战解析
  • Codeforces Round 1043 (Div. 3)(A-E)
  • 历史数据分析——半导体
  • 【科研绘图系列】浮游植物的溶解性有机碳与初级生产力的关系
  • 【Game】Powerful——Punch and Kick(12.2)
  • ComfyUI Portrait Master肖像大师中文版
  • 【51单片机】【protues仿真】基于51单片机宠物投食器系统
  • Redis 持久化策略
  • 如何创建自己的 Minecraft 世界
  • MiMo-VL 技术报告
  • rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(九)数值拖拽控件、进度条、滑动条
  • 【51单片机】【protues仿真】 基于51单片机储物箱系统
  • 双指针:三数之和
  • Sentinel相关记录
  • OSI参考模型TCP/IP模型 二三事
  • docker的基础配置
  • redis----hash类型详解
  • Python的标准库之时间库(小白五分钟从入门到精通)
  • 终端复用工具 tmux 的使用方式与推荐配置