LeetCode 49 字母异位词分组
力扣
思路:哈希表:
排序:对两个字符串分别进行排序之后得到的字符串是相同的
将排序之后的字符串作为哈希表的键 (参考LeetCode官方题解)
定义哈希表
unordered_map<string ,vector<string>>_map;
哈希表的值设为存放string类型的动态数组->对于异位词可以加到string数组中
第一步:
对strs数组中每一个字符串排序,map[排序后的字符串]表示排序后的字符串对应的string数组, 在该数组加入原字符串
例:strs 数组:{“eat”,“ate”,“bat”,“tab”}
排序后 : {ate, ate, abt,abt}
对应操作: _map[ate]=eat
_map[ate]=ate
_map[abt]=bat
_map[abt]=tab
aet | {eat,ate} |
abt | {bat,tab} |
第二步:
定义结果数组,把_map中的值元素加入结果数组
vector<vector<string>>res;//定义结果数组//遍历_map
for(auto it=_map.begin();it!=_map.end();it++)
{
res.push_back(_map->second);//_map对应值加入res
}
代码
class Solution {
public:vector<vector<string>> groupAnagrams(vector<string>& strs) {unordered_map<string, vector<string>> _map;for (string& str: strs) {string key = str;sort(key.begin(), key.end());//对每一个单词排序_map[key].push_back(str);//异位词加入哈希表}vector<vector<string>> ans;//定义结果串for (auto it = _map.begin(); it != _map.end(); ++it) {ans.push_back(it->second);//哈希表值加入res数组}return ans;}
};
参考:力扣
LeetCode 49 字母异位词分组相关推荐
- leetcode 49. 字母异位词分组
49. 字母异位词分组 - 力扣(LeetCode) 一开始想的是把各个字符串中每个字符ascii码值相加,然后相同的ascii码值放在一个组,在相同的ascii码值组中再去细找字母异位词. 一开始算 ...
- LeetCode 49字母异位词分组50pow(x,n)51八皇后
原创公众号:bigsai 如果不错记得点赞收藏! 关注回复 bigsai 领取Java进阶pdf资源,回复进群加入力扣打卡群. 上周打卡内容:43字符串相乘&44通配符匹配 45跳跃游戏&am ...
- LeetCode 49. 字母异位词分组(哈希)
1. 题目 给定一个字符串数组,将字母异位词组合在一起.字母异位词指字母相同,但排列不同的字符串. 示例:输入: ["eat", "tea", "ta ...
- leetcode 49. 字母异位词分组(排序+hash)
给定一个字符串数组,将字母异位词组合在一起.字母异位词指字母相同,但排列不同的字符串. 示例: 输入: ["eat", "tea", "tan&quo ...
- LeetCode 49. 字母异位词分组 Group Anagrams
给定一个字符串数组,将字母异位词组合在一起.字母异位词指字母相同,但排列不同的字符串. 示例: 输入: ["eat", "tea", "tan&quo ...
- 【LeetCode】【HOT】49. 字母异位词分组(递归)
[LeetCode][HOT]49. 字母异位词分组 文章目录 [LeetCode][HOT]49. 字母异位词分组 package hot;import java.util.ArrayList; i ...
- Leetcode刷题100天—49. 字母异位词分组( 排序)—day37
前言: 作者:神的孩子在歌唱 大家好,我叫运智 49. 字母异位词分组 难度中等847收藏分享切换为英文接收动态反馈 给你一个字符串数组,请你将 字母异位词 组合在一起.可以按任意顺序返回结果列表. ...
- 【LeetCode】49.字母异位词分组 (三种解法开拓思路,java实现)
49. 字母异位词分组 分析 方法一:排序数组分类 思路 当且仅当它们的排序字符串相等时,两个字符串是字母异位词. 算法 维护一个映射 ans : {String -> List},其中每个键 ...
- 49. 字母异位词分组
49. 字母异位词分组 给你一个字符串数组,请你将 字母异位词 组合在一起.可以按任意顺序返回结果列表. 字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母都恰好只用一次. 示例 ...
最新文章
- c语言scanf结果在printf前,C语言中的scanf与printf
- 【python】Python遍历dict的key最高效的方法是什么?
- Sql Server 分区演练
- 离散正(余)弦信号的时域与FFT变换后所得频域之间的关系(幅值和相角)
- BZOJ-1013-球形空间产生器sphere
- 1.有意义的命名(代码的整洁之道)
- 【转】OData – the best way to REST–实例讲解ASP.NET WebAPI OData (V4) Service Client
- linux命令之-管理文件和目录的命令
- 跳转点算法_跳转搜索算法介绍
- python读取文件路径中有中文_转 python 读取中文文件名/中文路径
- Android无线安全测试工具-WiFinSpect
- Linux 设置系统时间和时区2.Ubuntu
- linux有线程的概念,Linux线程相关概念
- http协议服务器错误代码稍后再试,Http协议常见错误码说明解析
- 按键精灵的5级开发认证,笔试题参考
- Leetcode刷题-最长公共前缀
- 义乌集训Day 6 T2
- 使用sklearn实现birch聚类分析
- Web前端,HTML表格相关标签和属性,在网页中表格结构的显示
- 银行业务名词释义(未完善)