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

Leetcode49:字母异位词分组

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

示例 1:

输入:strs = ["eat", "tea", "tan", "ate", "nat", "bat"]

输出:[["bat"],["nat","tan"],["ate","eat","tea"]]

解释:

  • 在 strs 中没有字符串可以通过重新排列来形成"bat"
  • 字符串"nat""tan"是字母异位词,因为它们可以重新排列以形成彼此。
  • 字符串"ate""eat""tea"是字母异位词,因为它们可以重新排列以形成彼此。

示例 2:

输入:strs = [""]

输出:[[""]]

示例 3:

输入:strs = ["a"]

输出:[["a"]]

提示:

  • 1 <= strs.length <= 104
  • 0 <= strs[i].length <= 100
  • strs[i]仅包含小写字母

直接上代码,看不懂请私信或留言

class Solution { public List<List<String>> groupAnagrams(String[] strs) { List<List<String>> ans = new ArrayList<>(); if(strs.length == 1) { ans.add(new ArrayList<>()); ans.get(0).add(strs[0]); return ans; } Map<String, List<String>> map = new HashMap<>(); /**如果大于1个遍历一下,遍历的过程中统计每个字母的词频,然后按照从a到z的顺序拼接,比如a出现两次拼接aa,都拼接完存入map以拼接完的string对应的list*/ for(String str : strs) { char[] sArr = str.toCharArray(); int[] count = new int[26]; /**统计字符出现的频次 */ for(char c : sArr) { count[c - 'a'] ++; } /**统计完之后拼接字符串*/ StringBuilder sb = new StringBuilder(); for(int i = 0; i < count.length; i++) { for(int j = 0; j < count[i]; j ++) { sb.append((char)('a' + i)); } } String strCur = sb.toString(); /**拿到按a~z的顺序排序后对应的list,有就拿原来的,没有就建个新的*/ List<String> strList = map.getOrDefault(strCur, new ArrayList<>()); /**把当前单词加入 */ strList.add(str); /**别忘了put,这是针对新建list的情况,如果不put的话map里就不存在 */ map.put(strCur, strList); } /**map的values是我们的各个异位词的list */ for(List<String> list : map.values()) { ans.add(list); } return ans; } }

运行结果:

有优化的空间,面试肯定能过,懒得搞了

http://www.jsqmd.com/news/313930/

相关文章:

  • 防渗漏托盘厂商选哪家?
  • Puppeteer MCP
  • GitHub MCP
  • TRAE开发复杂软件最佳实践
  • 【Python踩坑全纪录】-Windows 系统如何彻底卸载所有 pip install 安装的包?
  • 完整教程:中间件面试题
  • 即插即用系列 | AAAI 2026 WaveFormer: 当视觉建模遇上波动方程,频率-时间解耦的新SOTA
  • 【Redis面试高频篇】后端er必背:Redis面试20问,覆盖90%高频考点,背完稳了
  • 【游戏推荐】云族裔 韩国模拟人生 (inZOI)免安装中文版
  • 诱导公式速成
  • 基于Springboot+Vue的企业采购管理系统源码文档部署文档代码讲解等
  • 基于Springboot+Vue的企业数据资产登记系统源码文档部署文档代码讲解等
  • 堆垛机控制系统升降运动控制 FC15功能块实现
  • Uncertainty-Aware Bayesian PINN机械退化趋势预测(Pytorch)
  • 大数据描述性分析中的地理空间数据处理技巧
  • 个性化学习平台:AI架构师的数据库设计
  • 【游戏推荐】星际争霸:重制版 (StarCraft Remastered)免安装中文版
  • 液冷赛道爆发!塔能凭航天技术+插拔式改造,抢占算力中心市场C位
  • 【游戏推荐】特技射击模拟器 (TrickShot Simulator)免安装中文版
  • (实用向)中断服务程序(ISR)的优化方向
  • 基于Python的交通数据分析应用(源码+lw+部署文档+讲解等)
  • 大数据领域的实时数据采集方法
  • 数据预处理中的数据集成与融合技术
  • 深度测评 自考必用TOP8一键生成论文工具:高效写作全解析
  • litellm 使用介绍
  • 【模拟】螺旋矩阵
  • 大数据时代,数据合规的技术保障措施
  • 【剑斩OFFER】算法的暴力美学——力扣 1020 题:飞地的数量
  • iPhone XR 设备介绍:6种颜色 + 官方参数速查 + 体验亮点 + 二手选购避坑清单
  • 智能体协作提升价值投资的供应链弹性评估