当前位置: 首页 > 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;
}
http://www.lryc.cn/news/230142.html

相关文章:

  • spark调优案例分享
  • 阿里达摩院开源DAMO-YOLO
  • 【异常检测小集】
  • Mybatis-Plus的IPage和Page
  • jupyter lab常用插件集合
  • centos 6.10 安装 boost 1.78.0
  • Vue 3.0 + vite + axios+PHP跨域问题的解决办法
  • 软件外包开发的开发文档
  • 如何清理C盘文件
  • 从测试的角度看待南航机票bug事件
  • 通过 dump 虚拟机线程方法栈和堆内存来分析 Android 卡顿和 OOM 问题
  • layui 框架的upload上传文件的data参数传到后端的方法
  • Java虚拟机的垃圾回收机制
  • 时间序列基础->数据标签、数据分割器、数据加载器的定义和讲解(零基础入门时间序列)
  • 【图论】最小生成树(python和cpp)
  • 【亚马逊云科技】使用Amazon Lightsail快速建站
  • 使用字典树实现一个可以自动补全的输入框
  • edge/chrome浏览器favicon.ico缓存问题
  • 长虹智能电视使用123
  • Java基于itextPDF实现pdf动态导出
  • 【Liunx】配置IP地址与MAC地址绑定
  • Mybatis-Plus最新教程
  • 【Shell脚本11】Shell 函数
  • STM32中独立看门狗和窗口看门狗的使用方法
  • 刷题笔记(第七天)
  • python3.7 + pygame1.9.3实现小游戏《外星人入侵》(五):计分
  • [量化投资-学习笔记014]Python+TDengine从零开始搭建量化分析平台-Python知识点汇总
  • [论文分享] Never Mind the Malware, Here’s the Stegomalware
  • 代号:408 —— 1000道精心打磨的计算机考研题
  • 《QT从基础到进阶·十六》QT实现客户端和服务端的简单交互