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

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)

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

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

相关文章:

  • 2026-02-04 全国各地响应最快的 BT Tracker 服务器(联通版)
  • 何小鹏发布XPENG IRON仿生骨骼与肌肉格构设计:生物力学重塑人形机器人
  • 电车屋漏偏逢连夜雨,燃油车凶猛反扑,完全无力抵御攻势!外资车将乘胜追击!
  • 2026年汽车4S店迎宾讲解机器人技术深度解析与主流产品应用 - 智造出海
  • 智谱开源GLM-OCR:0.9B小模型在复杂文档处理登顶SOTA
  • 如何在相册里设置联系方式,让客户随时找我?看这里!
  • 深度解析支持定制欢迎语的展厅迎宾机器人:核心技术架构与主流产品评测 - 智造出海
  • 大型语言模型的 MOE 和 MOA
  • YOLO26涨点改进 | 独家创新,特征融合涨点改进篇 | TGRS 2025 | 引入ATEM仿射变换融合增强模块,含多种创新改进点,对边缘和纹理信息进行自适应增强,提升小目标和弱目标检测能力
  • AI模型推理延迟突增?架构师教你:模型轻量化+缓存优化应急响应技巧
  • 解锁更多编曲玩法,AI编曲软件为原创音乐人补充歌曲创作思路
  • Claude, Cursor, Aider, Copilot,AI编程助手该选哪个?
  • AI编曲软件激发歌曲创作灵感,原创音乐人轻松跨越思路障碍
  • 深蓝海域中标大型机电企业大模型知识工程平台项目
  • 分发安卓证书在线生成:一键搞定应用签名,安全便捷有保障
  • 大数据领域 Hive 的监控与调优策略
  • 老板必须盯的5个生产指标,90%的工厂一个都没盯对!
  • 网络流量监控神器 , Wireshark看着太累了
  • ubuntu 新建文件夹软连接
  • 面试-Tokenizer训练
  • 一文理清好人事管理的底层思维是什么
  • 绿联科技冲刺港股:9个月营收64亿利润4.7亿 绿联管理与和顺四号共套现近4亿
  • 大数据平台中Eureka的多数据中心部署方案
  • iOS 27 曝光!折叠屏、AI医生、Siri整容……看完我只想说:苹果这次拼了!
  • 基于数万次真机评测,RoboChallenge 首份年度报告发布
  • 基于Springboot健身房管理系统【附源码+文档】
  • 大坝、隧道深部位移监测 节段式位移计 系统组网核心要求是什么?
  • 复杂超深基坑环境监测难,不受天气人工影响且精确度高,自动化监测优势何在?
  • 基于SpringBoot的多媒体信息共享平台毕业设计
  • 展厅迎宾接待机器人技术深度解析与主流产品选型指南 - 智造出海