news 2026/5/12 2:18:46

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/10 23:08:03

Puppeteer MCP

在TRAE中使用Puppeteer MCP&#xff0c;相当于给你的AI编程助手装上了一双可以自动操作浏览器的手。它能把那些需要你手动点击、输入和查看网页的重复性工作&#xff0c;变成一句简单的指令。 &#x1f6e0;️ Puppeteer MCP 能做什么&#xff1f; 简单来说&#xff0c;它让T…

作者头像 李华
网站建设 2026/5/10 23:48:43

Sequential Thinking MCP

在TRAE国际版中&#xff0c;Sequential Thinking是让你与AI协作处理复杂任务的“思维导航仪”。它能把一个笼统的大问题&#xff0c;像拼乐高一样&#xff0c;拆解成一系列清晰、可执行的小步骤&#xff0c;并且边做边想&#xff0c;随时调整。 &#x1f9e0; 核心理解&#x…

作者头像 李华
网站建设 2026/5/10 10:24:02

深度测评 自考必用TOP8一键生成论文工具:高效写作全解析

深度测评 自考必用TOP8一键生成论文工具&#xff1a;高效写作全解析 自考论文写作工具测评&#xff1a;为何需要一份权威榜单&#xff1f; 随着自考人数逐年增长&#xff0c;论文写作成为众多考生必须面对的挑战。从选题构思到内容撰写&#xff0c;再到格式规范与查重处理&am…

作者头像 李华
网站建设 2026/5/10 14:10:42

Agent Skills实战:将AI助手打造成Vercel资深工程师的全栈指南

摘要 在AI编程新时代&#xff0c;Vercel开创性地将十年React/Next.js经验封装成Agent Skills开源知识库。本文深度解析这一技术革命的内部原理&#xff0c;从技能包架构设计到实战工作流构建&#xff0c;全方位指导开发者如何将AI助手训练成具备Vercel资深工程师视角的代码优化…

作者头像 李华
网站建设 2026/5/10 14:00:50

“多鱼”旧物交易平台的设计与实现(11821)

有需要的同学&#xff0c;源代码和配套文档领取&#xff0c;加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码&#xff08;前后端源代码SQL脚本&#xff09;配套文档&#xff08;LWPPT开题报告&#xff09;远程调试控屏包运行 三、技术介绍 Java…

作者头像 李华
网站建设 2026/5/9 7:21:24

“毛毛宠物店”宠物信息交流平台的设计与实现(11822)

有需要的同学&#xff0c;源代码和配套文档领取&#xff0c;加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码&#xff08;前后端源代码SQL脚本&#xff09;配套文档&#xff08;LWPPT开题报告&#xff09;远程调试控屏包运行 三、技术介绍 Java…

作者头像 李华