【剑斩OFFER】算法的暴力美学——字母异位词分组

一、题目描述

二、算法原理

思路:哈希表

使用一个 unordered_map< string , vector<string>> ,这个哈希表的 key 值是以 ASCII 码值来排序归类的,value 值就是数组,专门来存储符合这个 ASCII 值排序的字符串,例如:

最后把这个哈希表的 value 值放到一个二维数组里面就行。

三、代码实现

cpp 复制代码
class Solution {
public:
    vector<vector<string>> groupAnagrams(vector<string>& strs) {
        unordered_map<string,vector<string>> hash;
        for(auto& e : strs)
        {
            string s = e;
            sort(s.begin(),s.end());//对字符进行排序
            hash[s].push_back(e);//一个 ASCII 码值来归类,刚好符合题目要求
        }

        vector<vector<string>> ret;
        for(auto& pair : hash) ret.push_back(pair.second);//把哈希表里面的值放到二维数组里面
        return ret;
    }
};
相关推荐
2501_9418053110 小时前
从微服务网关到统一安全治理的互联网工程语法实践与多语言探索
前端·python·算法
源代码•宸10 小时前
Leetcode—1161. 最大层内元素和【中等】
经验分享·算法·leetcode·golang
nice_lcj52011 小时前
数据结构之树与二叉树:重点梳理与拓展
java·数据结构
CodeByV11 小时前
【算法题】模拟
算法
s090713611 小时前
FPGA加速:Harris角点检测全解析
图像处理·算法·fpga开发·角点检测
前端程序猿之路11 小时前
30天大模型学习之Day 2:Prompt 工程基础系统
大数据·人工智能·学习·算法·语言模型·prompt·ai编程
星火开发设计11 小时前
堆排序原理与C++实现详解
java·数据结构·c++·学习·算法·排序算法
2501_9418036211 小时前
在柏林智能城市照明场景中构建实时调控与高并发能耗数据分析平台的工程设计实践经验分享
算法
CoderIsArt11 小时前
常用SCSI数据结构的详细注释和用法
数据结构
福楠11 小时前
C++ STL | list
c语言·开发语言·数据结构·c++·算法·list