LeetCode热题100——字母异位词分组

题目要求

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

示例 1:

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

输出: \["bat","nat","tan","ate","eat","tea"]

解题思路

可以利用java中字符数组所自带的排序方法,题目中要求将字母异位词组合,即单词不同,但单词中所含字母均相同,利用排序方法就可以将字符串数组中的字母异位词筛选出来,利用哈希表来进行接受。

由于哈希表有键值一一对应的要求,可以利用排序后的字符串来作为键,将原字符串数组中的字母异位词分别作为值,最后利用哈希表的调出所有值的方法,生成一个集合,在返回这个集合,该集合就是题目要求的结果。

代码实现

java 复制代码
import java.util.*;
class Solution {
    public List<List<String>> groupAnagrams(String[] strs) {
        Map<String,List<String>> map = new HashMap();
        for(int i=0;i<strs.length;i++){
            String word=strs[i];
            char[] charArr=word.toCharArray();
            Arrays.sort(charArr);
            String key=new String(charArr);
            if(!map.containsKey(key)){
                map.put(key,new ArrayList<>());
            }
            map.get(key).add(word);
            
        }
        return new ArrayList<>(map.values());
    }
}
相关推荐
Zachery Pole15 分钟前
CCF-CSP备战NO.6【栈】
算法·深度优先
唠点键盘之外的20 分钟前
10 Spring Boot + 大模型:Java 项目接入 AI 的三种姿势
java·spring boot·aigc·cursor
NWU_LK21 分钟前
【WebFlux】第五篇 —— 两种编程模型与 WebClient
java
增量星球22 分钟前
《持续交付2.0系列六》业务需求协作管理
java·运维·自动化·devops·持续部署·持续集成
LJHclasstore_luo27 分钟前
【C++题解】112354.平行时空
数据结构·c++·算法
重生之我是Java开发战士38 分钟前
【Java EE】Spring IoC 与 DI
java·spring·java-ee
SimonKing1 小时前
阿里要求全员卸载 Claude Code:事件始末与深层逻辑
java·后端·程序员
云烟成雨TD1 小时前
Agent Scope Java 2.x 系列【42】2.0 GA 正式发布:从透明开发迈向智能体系统工程
java·人工智能·agent
猫猫不是喵喵.1 小时前
SpringBoot自动装配原理
java·spring boot·后端
刘小八1 小时前
Redis 缓存一致性:一文讲透延时双删原理、并发时序
java·数据库·redis·缓存