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

C/C++---------------LeetCode第49.字母异位词分组

字母异位词分组

  • 题目及要求
  • 哈希算法
  • 在主函数内使用

题目及要求

给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。

字母异位词 是由重新排列源单词的所有字母得到的一个新单词。

示例 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] 仅包含小写字母

哈希算法

思路:对于第一个字符串 “eat”,将其保存到临时变量 data 中,并对其进行排序得到 “aet”。在哈希表中找到键为 “aet” 的项,发现不存在,则创建该键,并将原始字符串 “eat” 加入到值的向量中。
对于第二个字符串 “tea”,同样保存到 data 中,并排序得到 “aet”。在哈希表中找到键为 “aet” 的项,发现已存在,则将原始字符串 “tea” 加入到值的向量中以此类推,到最后遍历哈希表 hash 中的每一对键值对然后将他们全部输出就行

class Solution {
public:vector<vector<string>> groupAnagrams(vector<string>& strs) {unordered_map<string,vector<string>>hash;for(auto str:strs){string data=str;sort(str.begin(),str.end());   //排序hash[str].push_back(data);     //存入哈希}vector<vector<string>>res;for(auto s:hash){           //第二次遍历res.push_back(s.second);        }return res;}
};

在主函数内使用

int main() {vector<string> strs = { "eat", "tea", "tan", "ate", "nat", "bat" };vector<vector<string>> result = groupAnagrams(strs);for (vector<string>group : result) {for (string str : group) {cout << str << "";}cout << endl;}return 0;
}

相关文章:

C/C++---------------LeetCode第49.字母异位词分组

字母异位词分组 题目及要求哈希算法在主函数内使用 题目及要求 给你一个字符串数组&#xff0c;请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs [“eat”, “tea”, “tan”…...

spark调优案例分享

做了一个Spark调优案例的分享 最近在整理了Spark相关的调优案例&#xff0c;并做了以下分享:spark调优案例 &#xff0c;注意是Mac Keynote...

阿里达摩院开源DAMO-YOLO

1.简介 DAMO-YOLO是一个兼顾速度与精度的目标检测框架&#xff0c;其效果超越了目前的一众YOLO系列方法&#xff0c;在实现SOTA的同时&#xff0c;保持了很高的推理速度。DAMO-YOLO是在YOLO框架基础上引入了一系列新技术&#xff0c;对整个检测框架进行了大幅的修改。具体包括…...

【异常检测小集】

目录 【2018 ICLR】DAGMM&#xff1a;Deep Autoencoding Gaussian Mixture Model for Unsupervised Anomaly Detection【2021 TNNLS】无名&#xff1a;Feature Encoding with AutoEncoders for Weakly-supervised Anomaly Detection 【2018 ICLR】DAGMM&#xff1a;Deep Autoen…...

Mybatis-Plus的IPage和Page

Mybatis-Plus 中的分页查询接口主要有两个&#xff1a;IPage 和 Page。 IPage 接口&#xff1a; IPage 是 Mybatis-Plus 中的分页结果集接口&#xff0c;它继承了 Mybatis 的 RowBounds 接口&#xff0c;提供了一系列的分页查询方法。该接口主要用于返回分页后的数据结果。 Pa…...

jupyter lab常用插件集合

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…...

centos 6.10 安装 boost 1.78.0

下载地址 找到对应的版本&#xff0c;下载源码&#xff0c;而不是二进制文件。 解压文件 cd boost_1_78_0 ./bootstrap.sh ./b2 install -perfix /usr/local/boost1.78.0/...

Vue 3.0 + vite + axios+PHP跨域问题的解决办法

最后一个Web项目&#xff0c;采用前后端分离。 前端&#xff1a;Vue 3.0 viteelement plus 后端&#xff1a;PHP 运行时前端和后端是两个程序&#xff0c;前端需要时才向后端请求数据。由于是两个程序&#xff0c;这就会出现跨域问题。 比如前端某个地方需要请求的接口如下…...

软件外包开发的开发文档

软件开发文档是一个重要的工具&#xff0c;用于记录和传达项目信息&#xff0c;帮助开发团队和利益相关者理解项目的各个方面。以下是一般性的软件开发文档编写格式&#xff0c;不同组织和项目可能有所不同&#xff0c;但这些通用准则可以帮助确保文档的清晰性和易读性&#xf…...

如何清理C盘文件

设置-系统-存储 在里面处理 搜索磁盘清理 然后选择系统文件&#xff0c;清理windows old等乱七八糟的东西 转移虚拟内存 关闭系统休眠功能 【管理员&#xff1a;命令提示符】窗口&#xff0c;输入命令&#xff1a;powercfg -h off&#xff0c;然后回车就可以关闭系统休眠…...

从测试的角度看待南航机票bug事件

事件描述 11月8日晚间&#xff0c;多名消费者反映南方航空多条成都进出港航线票价&#xff08;不含机建燃油费&#xff09;低至10元、20元、30元不等。上述超低价机票不仅在南方航空App可以购买&#xff0c;多家在线旅游平台也都能抢到。 11月9日&#xff0c;南航官方发布公告…...

通过 dump 虚拟机线程方法栈和堆内存来分析 Android 卡顿和 OOM 问题

作者&#xff1a;Tans5 Android 中的性能问题无非就是卡顿和 OOM&#xff0c;虽然总体就这两种&#xff0c;但是造成这两种性能问题的原因却是非常多&#xff0c;需要具体的原因具体分析&#xff0c;而且这是非常复杂的。本篇文章只是简单介绍如何找到造成这些问题的直接原因的…...

layui 框架的upload上传文件的data参数传到后端的方法

因为特殊性&#xff0c;upload.render初始化的data:{id:"sss"}不能传参到后台。 经过大量测试及参数网上方法&#xff0c;才发现&#xff0c;需要特殊处理&#xff1a; 1、如果直接给{id:"sss"}无效&#xff0c;但如果在before里&#xff0c;this.data.i…...

Java虚拟机的垃圾回收机制

Java虚拟机的垃圾回收机制 Java语言会对程序运行过程中产生的垃圾进行自动回收&#xff0c;不需要我们手动地写语句主动地对垃圾进行回收。 什么是垃圾&#xff1f; 在C语言中不再被使用的内存空间被称为垃圾&#xff0c;因为在C语言中如果我们使用到一些自定义类型的结构体&am…...

时间序列基础->数据标签、数据分割器、数据加载器的定义和讲解(零基础入门时间序列)

一、本文介绍 各位小伙伴好&#xff0c;最近在发时间序列的实战案例中总是有一些朋友问我时间序列中的部分对数据的操作是什么含义&#xff0c;我进行了挺多的介绍和讲解但是问的人越来越多&#xff0c;所以今天在这里单独发一篇文章来单独的讲一下时间序列中对数据的处理操作…...

【图论】最小生成树(python和cpp)

文章目录 一、声明二、简介三、代码C代码Python代码 一、声明 本帖持续更新中如有纰漏望指正&#xff01; 二、简介 &#xff08;a&#xff09;点云建立的k近邻图&#xff08;b&#xff09;k近邻图上建立的最小生成树 最小生成树 (Minimum Spanning Tree&#xff0c;简称 M…...

【亚马逊云科技】使用Amazon Lightsail快速建站

写在前面&#xff1a;博主是一只经过实战开发历练后投身培训事业的“小山猪”&#xff0c;昵称取自动画片《狮子王》中的“彭彭”&#xff0c;总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域&#xff0c;如今终有小成…...

使用字典树实现一个可以自动补全的输入框

说在前面 平时我们在终端输入命令的时候是不是都可以通过tab键来进行快速补全&#xff1f;那么有没有想过怎么去实现这个自动补全的功能呢&#xff1f;今天让我们一起来使用字典树实现一个可以自动补全的输入框。 效果展示 体验地址 http://jyeontu.xyz/jvuewheel/#/JAutoComp…...

edge/chrome浏览器favicon.ico缓存问题

解决办法来源于How do I force a favicon refresh? - Stack Overflow <head><link rel"icon" href"favcion.ico" type"image/x-icon"></link> </head> 遇到的问题&#xff1a; 第一次设置了faccion.ico 后 再一次修…...

长虹智能电视使用123

1、开机 在接通电源的情况下&#xff0c;长虹智能电视开机有两种方式。 方式1&#xff1a; 按电视右下角开机按钮 方式2&#xff1a; 按电视遥控器开机按钮 长虹智能电视开机后会进入其操作系统&#xff08;安卓&#xff09;。 屏幕左右双箭头图表&#xff0c;手指点击会…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

循环冗余码校验CRC码 算法步骤+详细实例计算

通信过程&#xff1a;&#xff08;白话解释&#xff09; 我们将原始待发送的消息称为 M M M&#xff0c;依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)&#xff08;意思就是 G &#xff08; x ) G&#xff08;x) G&#xff08;x) 是已知的&#xff09;&#xff0…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时&#xff0c;你可能需要保留重要的数据&#xff0c;例如通讯录。好在&#xff0c;将通讯录从 iPhone 转移到 Android 手机非常简单&#xff0c;你可以从本文中学习 6 种可靠的方法&#xff0c;确保随时保持连接&#xff0c;不错过任何信息。 第 1…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题&#xff1a; 指定音频引擎与设备&#xff1b;播放音频文件 本文所使用的环境&#xff1a; Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

网络编程(UDP编程)

思维导图 UDP基础编程&#xff08;单播&#xff09; 1.流程图 服务器&#xff1a;短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

目录 一、&#x1f44b;&#x1f3fb;前言 二、&#x1f608;sinx波动的基本原理 三、&#x1f608;波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、&#x1f30a;波动优化…...

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分&#xff1a; 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...

第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10+pip3.10)

第一篇&#xff1a;Liunx环境下搭建PaddlePaddle 3.0基础环境&#xff08;Liunx Centos8.5安装Python3.10pip3.10&#xff09; 一&#xff1a;前言二&#xff1a;安装编译依赖二&#xff1a;安装Python3.10三&#xff1a;安装PIP3.10四&#xff1a;安装Paddlepaddle基础框架4.1…...

Qt的学习(一)

1.什么是Qt Qt特指用来进行桌面应用开发&#xff08;电脑上写的程序&#xff09;涉及到的一套技术Qt无法开发网页前端&#xff0c;也不能开发移动应用。 客户端开发的重要任务&#xff1a;编写和用户交互的界面。一般来说和用户交互的界面&#xff0c;有两种典型风格&…...

麒麟系统使用-进行.NET开发

文章目录 前言一、搭建dotnet环境1.获取相关资源2.配置dotnet 二、使用dotnet三、其他说明总结 前言 麒麟系统的内核是基于linux的&#xff0c;如果需要进行.NET开发&#xff0c;则需要安装特定的应用。由于NET Framework 是仅适用于 Windows 版本的 .NET&#xff0c;所以要进…...