当前位置: 首页 > article >正文

Leetcode 字母异位词分组

在这里插入图片描述
这道题目的意思就是:把包含字母字符相同的单词分到同一组。

算法思路:

使用哈希表来解决。

首先将每个字符串进行排序,将排序之后的字符串作为 key,然后将用 key 所对应的异位词组 作为value。然后我们使用 std::pair 来遍历 键值对,将异位词分组保存。

class Solution {
public:
    vector<vector<string>> groupAnagrams(vector<string>& strs) {
        //首先创建一个hash表,key的类型是string,value的类型是vector<string>
        unordered_map<string, vector<string>> anaMap;

        //然后对所以的字符进行排序, 不能改变strs中的原始字符串,所以要使用const类型的引用
        for(const string& s : strs) {
            string sortedString = s; //先把 s 复制
            sort(sortedString.begin(), sortedString.end()); // 然后对复制过来的字符串进行排序

            //然后把键值对存进hash表,因为value的类型是vector,
            //所以要用push_back,不能用等号
            anaMap[sortedString].push_back(s);
        }

        //然后创建一个存储结果的向量
        vector<vector<string>> result;

        //遍历 hash 表的键值对 pair 
        for(auto& pair : anaMap) { 
            //返回的是 键值对 pair.first是string类型的key,
            // pair.second的类型是vector<string>
            result.push_back(pair.second);
        }
        return result;
    }
};

http://www.kler.cn/news/307948.html

相关文章:

  • Error: ENOENT: no such file or directory, uv_cwd
  • JVM-内存区域
  • 新装mysql8 并开启外网连接
  • 理解DataLoader
  • Redis——常用数据类型hash
  • 华为地图服务功能概览 -- HarmonyOS自学7
  • 【LeetCode Hot 100】169. 多数元素
  • Python快速入门 —— 第五节:接口开发
  • [项目][WebServer][ThreadPool]详细讲解
  • 猫狗识别大模型——基于python语言
  • C# WPF中实现深拷贝的五种方式
  • 商业银行零售业务数智运营探索与应用
  • BLE 协议之物理层
  • TCP核心机制
  • 数据结构(7.3_2)——平衡二叉树
  • iOS 18 适配 Xcode 16 问题
  • 线性代数(宋浩版)(4)
  • 基于Java、SpringBoot、Vue的加油站管理系统设计
  • 【Lua学习】Lua最最基础的
  • Hugging Face NLP课程学习记录 - 0. 安装transformers库 1. Transformer 模型
  • STM32+FATFS+SD卡+RTC(生成.CSV格式文件)
  • 代码随想录_刷题笔记_第一次
  • Invoke-Maldaptive:一款针对LDAP SearchFilter的安全分析工具
  • 文生视频算法
  • SprinBoot+Vue便民医疗服务微信小程序的设计与实现
  • 基于SpringBoot+Vue+MySQL的在线视频教育平台
  • OpenGL(四) 纹理贴图
  • Linux基础---10进程管理
  • YOLOv10:深度剖析与应用前景展望
  • 文章资讯职场话题网站源码整站资源自带2000+数据