Leetcode 字母异位词分组

news/2024/9/18 13:15:33/ 标签: 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.ppmy.cn/news/1525020.html

相关文章

LLM 进展和前进道路

近年来,语言模型取得了重大进展。这一进步是对数十亿个参数进行广泛训练和调整的结果,也是商业用途基准测试的结果。这项工作的起源可以追溯到 1950 年代,当时自然语言理解和处理的研究开始了。 本文旨在概述过去 70 年语言模型的历史和演变。它还将检查当前可用的大型语言…

Spring Boot的application.yml属性大全

一、Server 配置属性表格&#xff1a; 序号配置属性描述1server.port配置应用程序的监听端口&#xff08;默认8080&#xff09;2server.address配置绑定的网络地址&#xff08;绑定特定IP&#xff09;3server.servlet.context-path配置应用程序的上下文路径4server.servlet.se…

Spring Boot 部署方案!打包 + Shell 脚本详解

本篇和大家分享的是springboot打包并结合shell脚本命令部署&#xff0c;重点在分享一个shell程序启动工具&#xff0c;希望能便利工作&#xff1b; profiles指定不同环境的配置 maven-assembly-plugin打发布压缩包 分享shenniu_publish.sh程序启动工具 linux上使用shenniu_p…

Python | 练习作业 2

为学生登录系统新增搜索功能。 第二天作业的解题思路&#xff1a; # 1.创建一个空列表保存搜索结果 # 2.让用户输入要搜索的内容 # 3.遍历学生信息&#xff0c;检查学生的id name age gender score # 中的属性值 是否跟用户搜索的内容一致 # 4.如果有一致的属性 那么就将该学生…

代码随想录 第九章 动态规划part04 1049. 最后一块石头的重量 II

1049. 最后一块石头的重量 II class Solution { public:int lastStoneWeightII(vector<int>& stones) {int sum0;for (int i 0; i < stones.size(); i) sumstones[i];vector<int> w(sum / 2 1, 0);for (int i 0; i < stones.size(); i){for (int j …

磁盘映射(C语言)

目录 一、背景介绍 二、磁盘映射技术概述 1.磁盘映射原理 2.磁盘映射的优势 三、C语言实现磁盘映射 磁盘映射技术在C语言中的应用能够极大地提高文件操作的效率。本文将详细介绍磁盘映射的概念、如何在C语言中实现磁盘映射&#xff0c;并通过实际案例展示其在文件读写、数据…

【Vue3实战】嵌套路由让前端项目结构更清晰

Hey小伙伴们&#xff0c;今天要跟大家分享的是Vue3中的一个超实用技巧——嵌套路由&#xff08;Nested Routing&#xff09;。无论你是Vue的新手还是老手&#xff0c;都一定不能错过这篇指南&#xff0c;因为学会它&#xff0c;你的项目结构将会变得更加清晰有序&#xff01;&a…

C语言中的信号量、进程同步与互斥、线程同步与互斥详解

文章目录 信号量的基本概念信号量的基本操作信号量的使用场景C语言中使用信号量一&#xff0c;信号量相关的函数示例代码解释&#xff1a; 二、进程同步与互斥1. 进程同步的方式&#xff1a;信号量示例代码&#xff1a;使用信号量进行进程同步解释&#xff1a;2. 进程互斥的方式…

云计算实训43——部署k8s基础环境、配置内核模块、基本组件安装

一、前期系统环境准备 1、关闭防火墙与selinux [rootk8s-master ~]# systemctl stop firewalld[rootk8s-master ~]# systemctl disable firewalldRemoved symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed symlink /etc/systemd/system/dbus…

Mysql梳理3——基本的SELECT语句

3.1 SELECT SELECT 1; #没有任何子句 SELECT 9/2 #没有任何子句 3.2 SELECT...FROM 语法: SELECT 标识选择哪些列 FROM 标识从哪个表选择 选择全部列&#xff1a; SELECT * FROM departments; 注意&#xff1a;一般情况下&#xff0c;除非需要使用表中所有的字…

新能源汽车安全问题如何解决?细看“保护罩”连接器的守护使命

「当前市场上绝大部分电池的安全系数远远不够」。 在一场世界动力电池大会上&#xff0c;宁德时代的董事长曾毓群这样犀利直言。 从汽车开始向电动化转型升级那天起&#xff0c;动力电池的安全隐患就一直是个老生常谈的话题了。曾毓群的这句话&#xff0c;直接点明了行业的发展…

ubuntu24.04 为什么扬声器没有声音,但是戴上耳机有声音

扬声器在 Ubuntu 24.04 下没有声音&#xff0c;但耳机有声音&#xff0c;可能是由于以下几个原因造成的&#xff1a; 1. 输出设备设置问题 系统可能将默认输出设备设置为耳机&#xff0c;而非扬声器。你可以检查或更改音频输出设备&#xff1a; 打开“设置” -> “声音”…

InternVL2- dockerfile环境变量持久化使用`ENV`而不是`RUN export`来设置环境变量,以确保环境变量在容器运行时仍然可用

在Dockerfile中使用RUN export命令设置环境变量并不是一种持久化的方式。当你在Dockerfile中使用export命令时&#xff0c;它只会在当前构建阶段生效&#xff0c;并不会被持久化到生成的镜像中。这是因为export命令实际上是在shell环境中设置环境变量&#xff0c;而Docker构建过…

推荐7款可以写论文的AI免费工具,原创一键生成神器!

在当今学术研究和写作领域&#xff0c;AI技术的应用越来越广泛&#xff0c;特别是在论文写作方面。为了帮助学生和研究人员提高写作效率和质量&#xff0c;以下推荐7款可以写论文的AI免费工具&#xff0c;这些工具均具备一键生成高质量论文的功能&#xff0c;是原创写作的神器。…

HarmonyOS应用开发( Beta5.0)一杯冰美式的时间“拿捏Grid组件”

常见情形 在很多手机商城的页面中会出现类似网格状一样的情况&#xff0c;例如&#xff1a; 京东 ​这里呢是采用Grid组件中的控制滚动,里面的rowsTemplate属性为一行且不对列的行数属性进行操作&#xff0c;这样的话就可以控制水平滑动了。 2.淘宝 ​ 这里就是极其简单的2*…

vscode spring boot项目编辑yaml不自动提示补全如何解决

文章目录 properties能够自动弹出提示但是YAML文件就不会自动弹出提示ctrl空格不出提示的解决办法 properties能够自动弹出提示 但是YAML文件就不会自动弹出提示 只是不会自动弹出来而已&#xff0c;按ctrl空格即可解决 ctrl空格不出提示的解决办法 如果按ctrl空格没有用 …

Python计算机视觉第九章-图像分割

目录 9.1 图割&#xff08;Graph Cut&#xff09; 9.1.1 从图像创建图 9.1.2 用户交互式分割 9.2 利用聚类进行分割 9.3 变分法 9.1 图割&#xff08;Graph Cut&#xff09; 图论中的图&#xff08;graph&#xff09;是由若干节点&#xff0…

Go语言 管道1

本篇文章主要介绍Go语言 无缓冲管道和有缓冲管道概念&#xff0c;特点及其使用示例。 目录 无缓冲通道 有缓冲的管道 语法 特点 代码示例 未分配空间示例 读取次数不一致示例 For-range遍历 总结 无缓冲通道 sync.RWMutex{} 当涉及到多go程时&#xff0c;c语言使用互…

Vue3实现打印功能

1、安装插件 npm i vue3-print-nb --save 2、main.js全局配置 import print from vue3-print-nb app.use(print) 3、设置打印区域 为打印区域设置 id 选择器 <div id"printData"><el-table border :data"tableData" style"width: 100%…

[DCVRP] 基于复杂网络的k-opt算法解空间表示(五)

基于复杂网络的k-opt算法解空间表示 如果想提高算法,了解解空间结构是一个很好的突破口。使用 节点表示可行解,边表示可行解之间的领域关系。然后通过计算法复杂网络的基本指标分析算法解空间结构,其目的是得出优秀算法的解空间结构所呈现的特征,基于分析结论设计一个算法…