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

笨蛋学算法之LeetCodeHot100_2_字母异位词分组(Java)

在这里插入图片描述

package com.lsy.leetcodehot100;import java.util.*;public class _Hot2_字母异位词分组 {public static List<List<String>> groupAnagrams(String[] strs){//首先,定义一个map类型,其中key为String,value为List<String>//key主要是用来存放排序后的字符串(字符串会被拆分为字符)//value用来存放原字符串Map<String, List<String>> map = new HashMap<>();for(String str: strs){//取出字符串,转为字符数组char[] charArray = str.toCharArray();//对字符数组进行排序Arrays.sort(charArray);//将排序后的字符数组转为字符串String sortStr = Arrays.toString(charArray);//然后比较该字符串是否存在于map中,如果不存在,就添加到mapif(!map.containsKey(sortStr)){//将该字符串作为键存入key,然后创建一个新的list作为valuemap.put(sortStr,new ArrayList<>());}//如果排序后的字符串已经存在,仍然需要将原字符串,放入list中//如果排序后的字符串不存在,也需要将原字符串,放入list中//不管map中是否有该字符串,都存入到map的value中/*** 如果输入数组是["eat", "tea", "tan"]:* 首先处理"eat",排序后变为"aet",将其添加到哈希表中,键是"aet",值是一个包含"eat"的列表。* 接着处理"tea",排序后也变为"aet",此时"aet"已经存在于哈希表中,所以直接将"tea"添加到与"aet"关联的列表中。* 最后处理"tan",排序后变为"ant",由于"ant"不在哈希表中,所以会创建一个新的键值对,键是"ant",值是一个包含"tan"的列表。*/map.get(sortStr).add(str);}//返回list列表return new ArrayList<>(map.values());}public static void main(String[] args) {String[] strs= {"eat", "tea", "tan", "ate", "nat", "bat"};List<List<String>> lists=groupAnagrams(strs);System.out.print(lists);}
}

相关文章:

  • 【机器学习理论基础】定量变量和定性变量
  • 30岁迷茫?AI赛道,人生新起点
  • 【ArcGIS微课1000例】0115:字段数据类型案例详解
  • 计算广告读书杂记-待整理
  • 【AI大模型】Transformers大模型库(七):单机多卡推理之device_map
  • 基于SWIFT和Qwen1.5-14B-Chat进行大模型LoRA微调测试
  • 易舟云财务软件:数字化时代的财务管家
  • C/C++ 进阶(6)红黑树
  • Linux基础 (十四):socket网络编程
  • Ansible——fetch模块
  • 计划任务 之 一次性的计划任务
  • Java与MySQL的数据迁移与同步及事务与性能抉择
  • SQL进阶day12——高级条件语句
  • JMH309【亲测】典藏3D魔幻端游【剑踪3DⅢ】GM工具+开区合区工具+PC客户端+配置修改教程+Win一键服务端+详细外网视频教程
  • 那些年我看过的技术书(持续更新,大佬的成长之路)
  • 【译】JS基础算法脚本:字符串结尾
  • SegmentFault for Android 3.0 发布
  • dva中组件的懒加载
  • extjs4学习之配置
  • git 常用命令
  • idea + plantuml 画流程图
  • js中的正则表达式入门
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • select2 取值 遍历 设置默认值
  • Service Worker
  • spring + angular 实现导出excel
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 技术:超级实用的电脑小技巧
  • 区块链将重新定义世界
  • 深度学习在携程攻略社区的应用
  • 物联网链路协议
  • 线上 python http server profile 实践
  • 写代码的正确姿势
  • UI设计初学者应该如何入门?
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #define 用法
  • #pragma once与条件编译
  • (第30天)二叉树阶段总结
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (函数)颠倒字符串顺序(C语言)
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (十)T检验-第一部分
  • (十三)Flask之特殊装饰器详解
  • (一)基于IDEA的JAVA基础1
  • (转) Face-Resources
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .net 受管制代码
  • .Net中wcf服务生成及调用
  • .sys文件乱码_python vscode输出乱码
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面
  • @Autowired注解的实现原理