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

哈希-字母异位词分组

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

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

输入:字符串数组strs
输出:二维列表
思路:计数法,使用有效的字母异位词对每一个字符串进行操作,得到
的整型数组进行比较,如果相同则表示是字母异位词,然后将其整合在一起,使用hash表键值映射,详细请看Java数据结构—HashMap(哈希表及其基本操作)(含hashset)

class Solution {
    public List<List<String>> groupAnagrams(String[] strs) {
        //定义哈希表
        Map<String,List<String>> map = new HashMap<>();
        //循环strs
        for(String str : strs){
            //定义长度为26的整型数组用来存储每个字符出现的次数
            int[] counts = new int[26];
            //遍历字符串
            for(char s : str.toCharArray()){
                counts[s - 'a']++;
            }
            //拼接字符串,作为哈希表的键
            StringBuilder sb = new StringBuilder();
            for(int i = 0;i < 26;i++){
                if(counts[i] != 0){
                    sb.append((char)('a' + i)).append(counts[i]);
             }
         }
            //转换为String
            String key = sb.toString();
            //这个还在循环里面
            List<String> list = map.getOrDefault(key,new ArrayList<>());
            list.add(str);
            //把键值对存入map
            map.put(key,list);
        }
        //返回所有的哈希表中的值
         return new ArrayList<>(map.values());
    }
}

这里不能直接使用

return map.values();

Line 30: error: incompatible types: Collection<List<String>> cannot be converted to List<List<String>>
         return map.values();

虽然 map.values() 返回的集合已经包含了所有值,但它是一个 Collection 类型,而不是 List 或 ArrayList。为了满足特定需求(如随机访问、封装性等),我们需要将其转换为 ArrayList。因此,代码中使用 new ArrayList<>(map.values()) 是一种更安全、更灵活的做法。

相关文章:

  • (20)从strlen到strtok:解码C语言字符函数的“生存指南1”
  • 信息服务商演化博弈模型研究
  • 最新智能优化算法:牛优化( Ox Optimizer,OX)算法求解经典23个函数测试集,MATLAB代码
  • Shell脚本和Python的工作路径
  • 滚动弹幕案例
  • 面基Spring Boot项目中实用注解一
  • 电子电气架构 --- 电子电器新技术及发展趋势
  • [JVM篇]垃圾回收器
  • Windows第九章 控件的介绍
  • 共指消解问题的早期研究成果主要来自自然语 言处理领域
  • AdaMix
  • PH热榜 | 2025-02-16
  • c语言基础09
  • 什么决定了硬件设计质量?
  • Web后端 - Maven管理工具
  • 深入解析计算机网络请求头:常见类型与安全性影响
  • FFmpeg源码:url_find_protocol函数分析
  • maven——使用idea创建maven项目(文件夹上颜色)
  • 15.2 ProcessStartInfo类
  • 浏览器Cookies、SessionStorage 和 LocalStorage
  • 多少Moreless:向世界展示现代中式家具的生活美学
  • 淄博一酒店房间内被曝发现摄像头,当地警方已立案调查
  • 人形机器人灵犀X2掌握新技能:有了“内心戏”,还会拳脚功夫
  • 秘鲁总统任命前司法部长阿拉纳为新总理
  • 5吨煤炭“瞬间蒸发”?掺水炭致企业损失千万,腐败窝案曝光
  • 国家林业和草原局原党组成员、副局长李春良接受审查调查