news 2026/6/10 2:28:44

Leetcode49:字母异位词分组

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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; } }

运行结果:

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/30 18:31:43

GitHub MCP

在TRAE中集成GitHub MCP&#xff0c;相当于给你的AI助手配备了一套可以直接查询、操作GitHub仓库的专业工具。这能让AI在理解你的项目背景、生成相关代码或操作建议时&#xff0c;获得更精确的上下文。&#x1f527; 配置GitHub MCP Server你需要准备一个GitHub Personal Acces…

作者头像 李华
网站建设 2026/6/10 22:40:10

TRAE开发复杂软件最佳实践

用AI辅助工具&#xff08;此处以“TRAE”代指&#xff09;来生成和开发复杂软件时&#xff0c;可以遵循一些经过验证的做法。这些做法核心是把人放在主导位置&#xff0c;把AI当作一个高效的副驾驶。1. 从蓝图开始&#xff0c;而不是从砖头开始复杂软件像一座大楼&#xff0c;不…

作者头像 李华
网站建设 2026/6/10 18:25:57

大数据描述性分析中的地理空间数据处理技巧

大数据描述性分析中的地理空间数据处理技巧 关键词 大数据描述性分析、地理空间数据、数据处理技巧、空间分析、地理信息系统 摘要 本技术分析聚焦于大数据描述性分析中的地理空间数据处理技巧。首先介绍地理空间数据处理在大数据分析领域的背景与历史发展,明确相关问题空…

作者头像 李华
网站建设 2026/5/28 14:02:55

【游戏推荐】特技射击模拟器 (TrickShot Simulator)免安装中文版

类型&#xff1a; 休闲, 小游戏 链接&#xff1a;https://pan.quark.cn/s/a77fcebc0c06 游戏简介 挑战您的精准性和耐心。 用您自己的双手实现您在视频中看到的特技击球。 游戏特点&#xff1a; 使用鼠标投掷各种物体&#xff0c;击中微小的目标。 游戏难度极大&#xff0c;即…

作者头像 李华
网站建设 2026/6/6 22:12:37

大数据集群自动化运维:基于Eureka的服务自动注册

大数据集群不踩坑&#xff1a;用Eureka实现服务自动注册&#xff0c;让运维从“救火”变“养鱼” 关键词 大数据集群、自动化运维、Eureka、服务注册与发现、心跳检测、故障自愈、微服务 摘要 凌晨3点被监控报警叫醒、手动修改10个配置文件、盯着日志到天亮——这是很多大数据运…

作者头像 李华
网站建设 2026/5/28 19:55:02

(实用向)中断服务程序(ISR)的优化方向

一、中断开销的构成分析1.1 固定开销硬件级必要操作&#xff1a;包括中断检测、中断向量表查找、程序计数器保存、处理器状态寄存器保存架构依赖成本&#xff1a;不同处理器架构&#xff08;ARM Cortex-M, RISC-V, x86&#xff09;的固定开销差异显著典型范围&#xff1a;大多数…

作者头像 李华