当前位置: 首页 > 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());}

http://www.lryc.cn/news/424352.html

相关文章:

  • 《Linux运维总结:基于x86_64架构CPU使用docker-compose一键离线部署etcd 3.5.15容器版分布式集群》
  • WPF动画
  • 大数据系列之:统计hive表的详细信息,生成csv统计表
  • flutter 画转盘
  • 图像识别,图片线条检测
  • python crawler web page
  • 基于QT实现的TCP连接的网络通信(客户端)
  • Vue2中watch与Vue3中watch对比
  • Web 3 一些常见术语
  • 揭开数据分析中的规范性分析:从入门到精通
  • Linux文件IO
  • ccfcsp-202309(1、2、3)
  • 数据结构--数据结构概述
  • Spring中的BeanFactoryAware
  • Neo4j service is not installed
  • LeetCode 3132.找出与数组相加的整数 II:排序+3次尝试(nlog n)
  • 微信小程序--26(全局配置-1)
  • 汽车4S店管理系统-计算机毕设Java|springboot实战项目
  • bug的常见排查和分析思路以及相关的原因分类
  • Nature:7个提升科研产出的实用建议
  • react-native从入门到实战系列教程-页面之间的跳转
  • HarmonyOS应用开发者高级认证(一)
  • 【网络】套接字(socket)编程——UDP版
  • 一篇文章让你彻底掌握 Shell
  • Java中的Collection集合:深入理解与应用
  • Kubernetes-K8S
  • 简化文本处理流程,通用文字识别助力提升信息采集效率
  • 【网络】TCP协议通信的重要策略——滑动窗口,快重传,流量控制,拥塞控制,延时应答
  • 极狐GitLab CI/CD 如何构建镜像并推送到 azure 镜像仓库?
  • Leetcode—1143. 最长公共子序列【中等】