给定一个字符串数组,将字母异位词组合在一起。可以按任意顺序返回结果列表。
字母异位词指字母相同,但排列不同的字符串。

示例 1:
输入: strs = [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]
输出: [[“bat”],[“nat”,“tan”],[“ate”,“eat”,“tea”]]

示例 2:
输入: strs = [""]
输出: [[""]]

示例 3:
输入: strs = [“a”]
输出: [[“a”]]

提示:

1 <= strs.length <= 104
0 <= strs[i].length <= 100
strs[i] 仅包含小写字母

这道题就是考验对哈希表的理解,以及是否会灵活运用map容器;

设一个unordered_map容器,
key为排序后的strs中每一个字符串
value为字符串数组,存放key值相同的strs里的字符串

因为有相同字母顺序不同的字符串排序后一定相同,这样就可以作为索引key,然后将每一个key值对应的原字符串存放到字符串数组vaule中,最后只需要把value的内容提取出来就可以了;

文字描述可能不是特别清楚,多看几遍代码就明白了;
代码如下:

class Solution {public:vector<vector<string>> groupAnagrams(vector<string>& strs) {unordered_map<string, vector<string>> hash;for (string i : strs) {string key = i;sort(key.begin(), key.end());hash[key].push_back(i);}vector<vector<string>> ans;for (auto it = hash.begin(); it != hash.end(); ++it) {ans.push_back(it -> second);}return ans;}
};

这道题key值和vaule的选择还是关键,所以一定要会灵活运用;

49字母异位词分组(哈希表)相关推荐

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

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

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

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

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

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

  4. 49. 字母异位词分组

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

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

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

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

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

  7. LeetCode 49 字母异位词分组

    力扣 思路:哈希表: 排序:对两个字符串分别进行排序之后得到的字符串是相同的 将排序之后的字符串作为哈希表的键     (参考LeetCode官方题解)  定义哈希表 unordered_map< ...

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

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

  9. Leetcode 242.有效的字母异位词(哈希表)

    传送门:力扣 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词. 注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词. 示例 1:输入: ...

最新文章

  1. 节点图一般的比例_基于图的异常检测(二):LOCKINFER
  2. 【深入Java虚拟机JVM 07】JVM如何判断对象已死
  3. Vmware Centos中安装vmtools工具
  4. 【转】String.format详解
  5. matlab 锐化降噪,matlab 图形锐化 滤波
  6. [深度学习]生成对抗网络的实践例子
  7. 【codevs1063NOIP04PJ】合并果子,贪心の钻石
  8. 问题 F: 成绩统计
  9. TortoiseGit使用入门
  10. STL 之 vector 的使用 (转载)
  11. java中的Date类
  12. hbuilder简单网页模板_网页设计公司有哪些?用这个快速建站!
  13. 视觉SLAM入门十四讲
  14. Pytorch简单使用MINIST数据集
  15. 期货反跟单行业里的恶意剥削
  16. sheet中没有getcolumns()方法吗_痘痘能去除吗?有没有效果比较好的祛痘方法
  17. Google hacking介绍
  18. 《管理的常识》读书笔记
  19. 难倒刘强东的奥数题,京东智能供应链解开了
  20. 数字图像处理第五次作业——频域滤波器

热门文章

  1. 浅谈商业银行绿色数据中心建设
  2. 博物馆自动灭火系统应如何选择
  3. Python语言学习:在python中,如何获取变量的本身字符串名字而非其值/内容及其应用(在代码中如何查找同值的所有变量名)
  4. CV之Hog+HamMingDistance:基于Hog提取和汉明距离对比的应用—图像相似度对比之for循环将多个成对图片依次对比并输出相似度
  5. DayDayUp:《P2P行业最高端的玩法》源于网友网络收集
  6. Keras之MLP:利用MLP【Input(8)→(12)(relu)→O(sigmoid+二元交叉)】模型实现预测新数据(利用糖尿病数据集的八个特征实现二分类预测
  7. Py之MT:Multithreaded的简介、引入、使用方法之详细攻略
  8. DL之YoloV3:Yolo V3算法的简介(论文介绍)、各种DL框架代码复现、架构详解、案例应用等配图集合之详细攻略
  9. wpf 用户自定义事件传参
  10. eclipse修改代码后都需要clean的解决办法