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

一、题目解析

1、字母异位词:重新排列原单词所有字母可以形成彼此

2、strs[i]仅包含小写字母

二、算法原理

解法:哈希表

与其是一道算法题,这道题更像语法题

1、判断两个字符串是否是字母异位词

将字符串排序即可

2、如何分组

创建一个<string,vector<string>>的哈希表,前一个string是排列好的string,后面的vector<string>中存储的是分好的字母异位词

3、返回分组

通过创建一个vector<vector<string>> vv,用于存储分组,由于哈希表中存的是一个一个的pair, 插入second即可

三、代码示例

cpp 复制代码
class Solution {
public:
    vector<vector<string>> groupAnagrams(vector<string>& strs)
    {
        unordered_map<string,vector<string>> hash;
        for(auto str : strs)
        {
            string s = str;
            sort(s.begin(),s.end());
            hash[s].push_back(str);
        }
        vector<vector<string>> vv;
        for(auto ha : hash)
        {
            vv.push_back(ha.second);
        }
        return vv;
    }
};

看到最后,如果对您有所帮助,还请点赞、收藏和关注一键三连,感谢您的观看,我们下期再见!

相关推荐
深耕AI4 小时前
【MFC典型类和函数:CString的字符串魔法与Afx全局函数的便利店】
c++·mfc
怀旧,4 小时前
【C++】19. 封装红⿊树实现set和map
linux·c++·算法
凯子坚持 c4 小时前
Redis核心通用命令深度解析:结合C++ redis-plus-plus 实战指南
c++·redis·log4j
神里流~霜灭4 小时前
(C++)数据结构初阶(顺序表的实现)
linux·c语言·数据结构·c++·算法·顺序表·单链表
John_ToDebug5 小时前
从源码视角全面解析 Chrome UI 布局系统及 Views 框架的定制化实现方法与实践经验
c++·chrome·架构
愚润求学5 小时前
【贪心算法】day7
c++·算法·leetcode·贪心算法
深耕AI5 小时前
【MFC简介:从基础概念到实际应用】
c++·mfc
六点半8885 小时前
【C++】C++11 篇二
开发语言·c++
DDDDDDDRDDR5 小时前
C++容器:list
开发语言·c++·stl