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

LeetCode-字母异位词分组

题目描述

给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。

字母异位词 是由重新排列源单词的所有字母得到的一个新单词。

示例 1:

输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]
输出: [["bat"],["nat","tan"],["ate","eat","tea"]]

示例 2:

输入: strs = [""]
输出: [[""]]

示例 3:

输入: strs = ["a"]
输出: [["a"]]

思路解析

本题的意思很简单,就是把字母组成相同的字符放在一个数组里面,为此,我们可以遍历数组,将每个字符串先变为一个char数组,然后对其进行排序,因为一个字符串如果组成相同,那么在排序后肯定是相同的。因此我们用一个map来储存每种字母组合,将排序后的字符串作为key,将原本的字符串作为value,依次放入其中。

实现代码

    public List<List<String>> groupAnagrams(String[] strs) {HashMap<String,List<String>> map = new HashMap<>();List<List<String>> res = new ArrayList<>();for(String s:strs){char[] arr = s.toCharArray();Arrays.sort(arr);String key = new String(arr);List<String> list = map.getOrDefault(key,new ArrayList<>());list.add(s);map.put(key,list);}return new ArrayList<List<String>>(map.values());}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 用R语言进行数据类型的检查和基础转换
  • 如果将一个对象赋值给 ref,那么这个对象将通过 reactive() 转为具有深层次响应式的对象。这也意味着如果对象中包含了嵌套的 ref,它们将被深层地解
  • rk3568-linux sdk编译update.img时以当前时间进行命名
  • 前端开发有什么专业术语吗?
  • Golang | Leetcode Golang题解之第335题路径交叉
  • Android 12系统源码_多屏幕(二)模拟辅助设备功能开关实现原理
  • SecureCRT for Mac/Win:安全高效的专业终端SSH工具软件
  • 重修设计模式-创建型-原型模式
  • 超详细!!!electron-vite-vue开发桌面应用之配置路由router(五)
  • CopyOnWriteArrayList技术探究
  • C:每日一题:二分查找
  • DevExpress开发WPF应用实现对话框总结:编织界面的艺术之旅
  • 搭建jenkins+k8s过程中遇到的问题
  • HarmonyOS应用开发学习-ArkTs声明式UI描述
  • 《框架封装 · 优雅接口限流方案》
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • CAP理论的例子讲解
  • cookie和session
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • EOS是什么
  • es6(二):字符串的扩展
  • HTML-表单
  • Java|序列化异常StreamCorruptedException的解决方法
  • JS实现简单的MVC模式开发小游戏
  • MySQL-事务管理(基础)
  • Python利用正则抓取网页内容保存到本地
  • Python学习笔记 字符串拼接
  • React Native移动开发实战-3-实现页面间的数据传递
  • Sublime Text 2/3 绑定Eclipse快捷键
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 马上搞懂 GeoJSON
  • 使用 Docker 部署 Spring Boot项目
  • 算法系列——算法入门之递归分而治之思想的实现
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 详解移动APP与web APP的区别
  • 译米田引理
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • 积累各种好的链接
  • (1)svelte 教程:hello world
  • (160)时序收敛--->(10)时序收敛十
  • (2024,RWKV-5/6,RNN,矩阵值注意力状态,数据依赖线性插值,LoRA,多语言分词器)Eagle 和 Finch
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (Python) SOAP Web Service (HTTP POST)
  • (第61天)多租户架构(CDB/PDB)
  • (十六)串口UART
  • (四)Linux Shell编程——输入输出重定向
  • (算法)Travel Information Center
  • . Flume面试题
  • .bat文件调用java类的main方法
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .net 中viewstate的原理和使用
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout