news 2026/7/23 23:25:01

LeetCode 热题 100--字母异位词分组

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LeetCode 热题 100--字母异位词分组

题目:

解析:

核心思路

  • 字母异位词的特征:相同字母组成的不同单词,排序后会得到相同的字符串
  • 使用排序字符串作为哈希键:将每个单词排序后作为分组的唯一标识
  • 哈希表存储分组:键是排序后的字符串,值是对应的原始字符串列表

1.先创建一个哈希表用于存储分组,键是排序后的字符串,值是包含原始字符串的列表

2.将字符串转换为字符数组再排序,将排序后的字符串作为键

3.使用getOrDefault获取对应的列表(不存在则创建新列表)

4.将当前字符串添加到列表中

5.更新HashMap,将列表与hash表建立映射

class Solution { public List<List<String>> groupAnagrams(String[] strs) { Map<String, List<String>> hash = new HashMap<String, List<String>>(); for (String str : strs) { char[] array = str.toCharArray(); Arrays.sort(array); String key = new String(array); List<String> list = hash.getOrDefault(key, new ArrayList<String>()); list.add(str); hash.put(key, list); } return new ArrayList<List<String>>(hash.values()); } }


char[] array = str.toCharArray();
作用:将字符串转换为字符数组

返回:char[] 字符数组

示例:"eat" → ['e','a','t']


Arrays.sort(array);
作用:对字符数组进行升序排序

原地修改:直接修改原数组,不返回新数组

排序后:['e','a','t'] → ['a','e','t']

List<String> list = hash.getOrDefault(key, new ArrayList<String>());
作用:获取指定key对应的值,如果不存在返回默认值

参数1:key - 要查找的键

参数2:defaultValue - key不存在时返回的默认值

返回:key对应的值或默认值

优点:避免空指针检查,代码简洁

hash.put(key, list);
作用:将键值对放入HashMap

如果key存在:更新对应的value

如果key不存在:添加新的键值对

返回:key先前关联的值(如果没有则返回null)

hash.values()
作用:返回HashMap中所有值的集合视图

返回类型:Collection<V>

特点:返回的是视图,不是新集合,修改会影响原Map

new ArrayList<>(collection)
new ArrayList<List<String>>(hash.values())

作用:使用集合初始化新的ArrayList

参数:一个集合(Collection)

特点:创建新列表,包含参数集合的所有元素

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

滚柱导轨润滑周期预测

滚柱导轨为直线运动传动装置&#xff0c;接触面积大&#xff0c;负载能力和刚性强&#xff0c;适用于重载、高精度或刚性要求高的运用场景&#xff0c;如CNC数控机床、重型搬运设备、大型龙门机床、自动化设备等大型机械设备。是精密加工设备的核心传动配件&#xff0c;其润滑周…

作者头像 李华
网站建设 2026/7/18 19:29:04

应对海量编曲配乐订单,AI编曲软件让原创音乐人实现批量高产

在音乐创作的领域里&#xff0c;传统的人工编曲一直占据着主导地位。然而&#xff0c;随着科技的飞速发展&#xff0c;AI编曲软件正以其独特的优势逐渐崭露头角&#xff0c;成为应对海量配乐订单、助力原创音乐人实现批量高产的得力助手。与人工编曲相比&#xff0c;AI编曲软件…

作者头像 李华
网站建设 2026/7/18 14:08:21

提示工程架构师进阶:打造企业级代码生成工具实战

提示工程架构师进阶:打造企业级代码生成工具实战 一、引言 在当今软件开发的快节奏环境中,提高开发效率和质量是每个企业追求的目标。代码生成工具作为一种能够自动化生成部分代码的利器,正逐渐在企业级开发中崭露头角。对于提示工程架构师而言,打造企业级代码生成工具不…

作者头像 李华
网站建设 2026/7/18 12:19:28

自建一个Agent很难吗?一语道破,万语难明

最近花了一周左右的时间给内部的一个传统研发平台接入了 Agent 开发的能力&#xff0c;很多同学对 Agent 的底层实现非常感兴趣&#xff0c;所以此篇给大家介绍下我是怎么做的&#xff0c;希望能对想自建 Agent 的同学有所启发。 因人力原因&#xff0c;有些细节方案问题没太做…

作者头像 李华