news 2026/7/4 23:37:42

hot100 2.字母异位词分组

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
hot100 2.字母异位词分组

思路:哈希表分组。

1.题目要求:如果两个字符串从小到大排序后相等,那么这两个字符串就互为字母异位词,否则不是。

2.举例:以示例1为例。输入:strs = [eat,tea,tan,ate,nat,bat]。

(1)每个字符串各自排序,得到aet,aet,ant,aet,ant,abt。

(2)把排序后相同的字符串分到同一组:

——排序后是aet的字符串,排序前是eat,tea,ate。

——排序后是ant的字符串,排序前是tan,nat。

——排序后是abt的字符串,排序前是bat。

(3)因此,示例1返回的二维列表中,包含三个列表,分别为:[eat,tea,ate],[tan,nat],[bat],三个列表的顺序随意。

附代码:

class Solution { public List<List<String>> groupAnagrams(String[] strs) { Map<String,List<String>> map = new HashMap<>(); for(int i = 0;i < strs.length;i++){ //把字符串数组strs中的每一个字符串都转换为字符数组chars char[] chars = strs[i].toCharArray(); //把每一个chars都按字母顺序排序 Arrays.sort(chars); //将排序后的字符数组重新组合成字符串,作为HashMap的键 //toString返回的是数组对象的哈希地址,new String(chars)才是使用String的构造函数从字符数组创建一个新的字符串 String key = new String(chars); //如果键不存在,就创建新列表 if(!map.containsKey(key)){ map.put(key,new ArrayList<String>()); } //获得当前键对应的列表 //将当前字符串添加到当前字符串列表中 map.get(key).add(strs[i]); } //将哈希表的所有的值收集起来,组成一个新的列表并返回 return new ArrayList(map.values()); } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/30 22:05:34

【医疗数据PHP导出终极指南】:5种高效格式选择与实战代码解析

第一章&#xff1a;医疗数据PHP导出的核心挑战与场景分析在医疗信息化快速发展的背景下&#xff0c;PHP作为广泛应用的后端语言&#xff0c;常被用于构建医院管理系统、电子病历平台等应用。然而&#xff0c;在将敏感且结构复杂的医疗数据导出为Excel、CSV或PDF等格式时&#x…

作者头像 李华
网站建设 2026/7/2 22:36:25

【低代码开发进阶指南】:构建可自动更新PHP组件的4种模式

第一章&#xff1a;低代码 PHP 组件的更新机制在现代 Web 开发中&#xff0c;低代码平台通过封装常用功能为可复用组件&#xff0c;显著提升了开发效率。PHP 作为服务端脚本语言&#xff0c;其组件更新机制直接影响系统的可维护性与稳定性。低代码 PHP 组件通常以独立模块形式存…

作者头像 李华
网站建设 2026/7/2 8:12:49

调试Rust实现的PHP扩展函数,这些坑你不得不防,90%开发者都踩过

第一章&#xff1a;Rust 扩展的 PHP 函数调试概述在现代高性能 Web 开发中&#xff0c;将 Rust 编写的扩展集成到 PHP 中已成为提升关键路径执行效率的重要手段。由于跨语言调用的复杂性&#xff0c;调试此类扩展中的函数变得尤为关键。PHP 通过 FFI&#xff08;Foreign Functi…

作者头像 李华
网站建设 2026/6/30 21:53:30

【QDK扩展开发全攻略】:掌握高效插件架构设计的7大核心原则

第一章&#xff1a;QDK扩展开发概述Quantum Development Kit&#xff08;QDK&#xff09;是微软推出的量子计算开发平台&#xff0c;支持开发者使用 Q# 语言构建量子算法并进行仿真运行。随着量子计算应用场景的不断拓展&#xff0c;原生 QDK 功能已难以满足特定领域需求&#…

作者头像 李华
网站建设 2026/7/4 17:53:55

“Callable和Future:Java多线程编程的秘密武器!”

文章目录“Callable和Future&#xff1a;Java多线程编程的秘密武器&#xff01;”引言为什么需要Callable和Future&#xff1f;Callable&#xff1a;不只是跑得快什么是Callable&#xff1f;Callable的使用示例Callable的优势Future&#xff1a;未来的承诺什么是Future&#xf…

作者头像 李华