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

49. 字母异位词分组

        给定一个字符串数组,将其中的字母异位词组合在一起,放入一个结果列表中,返回这个结果列表

        所谓字母异位词就是每种字母出现次数相同的单词,例如abb,bab.aab则不是,注意到abb,bab互为字母异位词的,按照字母从小到大排序后为一个单词。

根据这个特点,我们用哈希进行存储,单词作为key,互为字母异位词的单词组成的数组作为val,

遍历字符串数组,取出答案放入结果列表即可。

class Solution {
public://把每种字母出现次数相同的字符串分到同一组vector<vector<string>> groupAnagrams(vector<string>& strs) {unordered_map<string,vector<string>> mp;//将排好序的每种字母出现的字符串放入同一组for (auto it:strs){string sorted_s = it;sort(sorted_s.begin(),sorted_s.end());mp[sorted_s].push_back(it);}vector<vector<string>> ans;//取出答案放入ansfor (auto it:mp) {ans.push_back(it.second);}return ans;}
};

时间复杂度:O(nmlogm),n为字符串数组长度,m为字符串长度,对每个字符串进行排序需要O(mlogm),共n个字符串

http://www.xdnf.cn/news/3909.html

相关文章:

  • 高等数学-第七版-下册 选做记录 习题10-2
  • 【C++11】其他一些新特性 | 右值引用 | 完美转发
  • Allegro23.1新功能之如何设置高压爬电间距规则操作指导
  • AtCoder Beginner Contest 404 C-G(无F)题解
  • Linux之用户管理
  • SimpleLive 1.8.1 |聚合虎牙、斗鱼、哔哩哔哩及抖音直播
  • 胶合目录解释
  • 【with 在长难句中有哪几种翻译?】
  • 洛谷 P2866 [USACO06NOV] Bad Hair Day S
  • UNet 改进(22):结合Transformer结构
  • 《算法导论(原书第3版)》下载
  • Linux watch 命令使用详解
  • Vue 虚拟DOM和DIff算法
  • 从上帝视角看文件操作
  • 杜教筛原理,实现与时间复杂度分析
  • 【服务器通信-listen】——int listen(int sockfd, int backlog)
  • 【多次弹出“获取打开此tobiieyetracking链接的应用”的窗口】解决办法
  • [硬件电路-11]:模拟电路常见元器件 - 什么是阻抗、什么是输入阻抗、什么是输出阻抗?阻抗、输入阻抗与输出阻抗的全面解析
  • Python_leve2.1
  • Python语句入门:从基础到实践
  • STM32的定时器
  • 在Linux中如何创建自定义的systemd服务的步骤
  • 动静态库【Linux操作系统】
  • 股指期货风险管理功能及基差、升水、贴水的影响
  • 牛客月赛115 C题-命运之弹 题解
  • Linux环境下的进程创建、退出和进程等待
  • 谷歌 NotebookLM 支持生成中文播客
  • n8n 条件节点详解:IF 与 Switch 的多分支工作流设计
  • 虚函数VS虚拟继承:C++多重继承二义性破解与性能调优
  • 论快乐的学习和学习的快乐