49. 字母异位词分组
1.题目介绍
给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
字母异位词 是由重新排列源单词的所有字母得到的一个新单词。
示例 1:
输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]
输出: [["bat"],["nat","tan"],["ate","eat","tea"]]
示例 2:
输入: strs = [""]
输出: [[""]]
示例 3:
输入: strs = ["a"]
输出: [["a"]]
提示:
仅包含小写字母
2.题解
2.1 哈希表
这里的思路主要是用哈希表存储一个映射键值,能够映射到所有的字母异位词,这里采用的映射方法为排序,采用排序后的字符串作为映射键值
每遍历一个数据,就映射出其哈希键值,并存储到哈希表中,最后遍历哈希表,的到所需数组。
这里要注意的一个是mp[key].emplace(str); 这里的mp[key]表示的是一个vector<string,>使用的也是vector的emplace的方法
不要使用mp.emplace(key,str);或者mp.emplace(make_pair<string,vector
代码
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].emplace(str);
}
vector<vector<string>> gpAn;
for (auto it = mp.begin(); it != mp.end(); it++){
gpAn.emplace_back(it->second);
}
return gpAn;
}
};
2.2
分类:
力扣
, 数据结构与算法 / 哈希算法 / 哈希表
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了