力扣

思路:哈希表:

排序:对两个字符串分别进行排序之后得到的字符串是相同的

将排序之后的字符串作为哈希表的键     (参考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

_map哈希表
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 字母异位词分组相关推荐

  1. leetcode 49. 字母异位词分组

    49. 字母异位词分组 - 力扣(LeetCode) 一开始想的是把各个字符串中每个字符ascii码值相加,然后相同的ascii码值放在一个组,在相同的ascii码值组中再去细找字母异位词. 一开始算 ...

  2. LeetCode 49字母异位词分组50pow(x,n)51八皇后

    原创公众号:bigsai 如果不错记得点赞收藏! 关注回复 bigsai 领取Java进阶pdf资源,回复进群加入力扣打卡群. 上周打卡内容:43字符串相乘&44通配符匹配 45跳跃游戏&am ...

  3. LeetCode 49. 字母异位词分组(哈希)

    1. 题目 给定一个字符串数组,将字母异位词组合在一起.字母异位词指字母相同,但排列不同的字符串. 示例:输入: ["eat", "tea", "ta ...

  4. leetcode 49. 字母异位词分组(排序+hash)

    给定一个字符串数组,将字母异位词组合在一起.字母异位词指字母相同,但排列不同的字符串. 示例: 输入: ["eat", "tea", "tan&quo ...

  5. LeetCode 49. 字母异位词分组 Group Anagrams

    给定一个字符串数组,将字母异位词组合在一起.字母异位词指字母相同,但排列不同的字符串. 示例: 输入: ["eat", "tea", "tan&quo ...

  6. 【LeetCode】【HOT】49. 字母异位词分组(递归)

    [LeetCode][HOT]49. 字母异位词分组 文章目录 [LeetCode][HOT]49. 字母异位词分组 package hot;import java.util.ArrayList; i ...

  7. Leetcode刷题100天—49. 字母异位词分组( 排序)—day37

    前言: 作者:神的孩子在歌唱 大家好,我叫运智 49. 字母异位词分组 难度中等847收藏分享切换为英文接收动态反馈 给你一个字符串数组,请你将 字母异位词 组合在一起.可以按任意顺序返回结果列表. ...

  8. 【LeetCode】49.字母异位词分组 (三种解法开拓思路,java实现)

    49. 字母异位词分组 分析 方法一:排序数组分类 思路 当且仅当它们的排序字符串相等时,两个字符串是字母异位词. 算法 维护一个映射 ans : {String -> List},其中每个键 ...

  9. 49. 字母异位词分组

    49. 字母异位词分组 给你一个字符串数组,请你将 字母异位词 组合在一起.可以按任意顺序返回结果列表. 字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母都恰好只用一次. 示例 ...

最新文章

  1. c语言scanf结果在printf前,C语言中的scanf与printf
  2. 【python】Python遍历dict的key最高效的方法是什么?
  3. Sql Server 分区演练
  4. 离散正(余)弦信号的时域与FFT变换后所得频域之间的关系(幅值和相角)
  5. BZOJ-1013-球形空间产生器sphere
  6. 1.有意义的命名(代码的整洁之道)
  7. 【转】OData – the best way to REST–实例讲解ASP.NET WebAPI OData (V4) Service Client
  8. linux命令之-管理文件和目录的命令
  9. 跳转点算法_跳转搜索算法介绍
  10. python读取文件路径中有中文_转 python 读取中文文件名/中文路径
  11. Android无线安全测试工具-WiFinSpect
  12. Linux 设置系统时间和时区2.Ubuntu
  13. linux有线程的概念,Linux线程相关概念
  14. http协议服务器错误代码稍后再试,Http协议常见错误码说明解析
  15. 按键精灵的5级开发认证,笔试题参考
  16. Leetcode刷题-最长公共前缀
  17. 义乌集训Day 6 T2
  18. 使用sklearn实现birch聚类分析
  19. Web前端,HTML表格相关标签和属性,在网页中表格结构的显示
  20. 银行业务名词释义(未完善)

热门文章

  1. CCF201912-3 化学方程式(100分)【文本处理】
  2. UVA121 POJ1319 HDU1621 Pipe Fitters【计算几何】
  3. HDU2564 词组缩写【文本】
  4. ACM程序设计基础题解
  5. JSK-129 判断日期是否符合格式【入门】
  6. jQuery AJAX 与 jQuery 事件
  7. MXNet 的学习(一)—— MXNet Dependency Engine(依赖引擎)
  8. UNIX 环境高级编程(五)—— unistd.h
  9. matlab 信号与系统(一)—— 上采样(Upsampling)和下采样(Downsampling)
  10. ZooKeeper 基本操作