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

力扣49. 字母异位词分组(哈希表)

 思路

开始读题,要求我们寻找字母异位的相同字符串,简单来说就是有相同字母的字符串,那么就非常简单,这个题难点在于,存储数据。按照题目的特性,我们运用哈希表来存储有相同字母的字符串。

我们选择map容器,map有键值两个属性,那么我们的键需要存什么,根据题目要求我们找相同字母的字符串。他们有什么特点呢,1.排序后顺序相同,有相同的字母。那么我们就有两个突破口。

1.排序后字符串相同,那么就可以作为我们的键来使用。

 对于值,我们要求的是存字符串的数组,利用vector

建立map容器 map<string,vector<string>> mp;

代码步骤

对于每个字符串我们需要先排序

string x=strs[i];

sort(x.begin(),x.end());

然后存到哈希表里面去

mp[x].emplace_back(strs[i]);

代码展示

map容器可以换成unordered_map无序哈希

  unordered_map<string, vector<string>> mp;
class Solution {
public:vector<vector<string>> groupAnagrams(vector<string>& strs) {vector<vector<string>> num;map<string,vector<string>> mp;for(int i=0;i<strs.size();i++){string ss=strs[i];sort(ss.begin(),ss.end());mp[ss].emplace_back(strs[i]);}//两种写法第一个是迭代器,指针写法,第二个是c++11特性。auto 代表任意数据类型// for(auto it=mp.begin();it!=mp.end();++it)// {//     num.emplace_back(it->second);// }//遍历容器存放字符串数组for(auto x:mp){num.emplace_back(x.second);}return num;}
};

http://www.xdnf.cn/news/4350.html

相关文章:

  • suna界面实现原理分析(三):Terminal工具调用可视化
  • 强化学习是AI Agent的进化引擎还是技术枷锁呢?
  • ​Spring + Shiro 整合的核心要点及详细实现说明
  • vLLM 推理 Qwen2.5-VL-7B 视频
  • 2025最新vmware-17虚拟机安装教程(保姆级,图文讲解,带安装包)
  • 餐饮加盟店如何通过日事清全流程闭环管理实现进度同步与效率升级?
  • 强化学习策略梯度推导
  • 漏洞检测服务费用受哪些因素制约?费用区间是多少?
  • 蓝肽子序列--字符串+最长子序列的dp
  • 从零开始学java--集合类(2)
  • 职业短线交易系统
  • SAM详解2(初级应用)
  • Python入门(一)
  • 数字人驱动方向最新顶会期刊论文收集整理 | AAAI 2025
  • 系统级编程(一):内存的段页式管理
  • x-cmd install | Tuistash - Logstash 实时监控,告别图形界面,高效便捷!
  • VBA之Excel应用第四章第三节:Range对象内容的复制Copy粘贴Paste
  • 根据蓝牙名称自动匹配对应 UI
  • 逻辑越权--水平垂直越权(WEB漏洞)
  • 什么是原子变量
  • Linux死锁实验分析与总结
  • 安卓基础(拖拽)
  • 前端知识-useState
  • 开启健康模式:养身新主张
  • Nginx 安全防护与Https 部署实战
  • 自定义SpringBoot Starter-笔记
  • Element-Plus-X开源程序是Vue3 + Element-Plus 开箱即用的企业级AI组件库前端的解决方案
  • 【言语理解】片段阅读之语句填入(7)
  • LeetCode 1781. 所有子字符串美丽值之和 题解
  • C++编程语言:从高效系统开发到现代编程范式的演进之路