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

leetcode_字符串 49. 字母异位词分组

49. 字母异位词分组

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

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

  • 示例 1:

    • 输入: strs = [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]
    • 输出: [[“bat”],[“nat”,“tan”],[“ate”,“eat”,“tea”]]
  • 示例 2:

    • 输入: strs = [“”]
    • 输出: [[“”]]
  • 示例 3:

    • 输入: strs = [“a”]
    • 输出: [[“a”]]
  • 思路:

      1. 字母异位词的特点是它们包含的字母种类和数量完全相同,只是排列顺序不同。因此,可以利用排序法来识别哪些单词是字母异位词(26字母表顺序)。
      1. 创建一个哈希表,键是排序后的字符串,值是对应的字母异位词列表。遍历字符串数组,将每个单词排序后作为键,并将单词添加到对应的字母异位词列表中。
class Solution(object):
    def groupAnagrams(self, strs):
        """
        :type strs: List[str]
        :rtype: List[List[str]]
        """
        # 使用哈希表来存储分组结果
        hash_map = {}
        
        # 遍历每个单词
        for word in strs:
            # 对单词进行标准化(排序字母)
            sorted_word = ''.join(sorted(word))
            
            if sorted_word not in hash_map:
                hash_map[sorted_word] = [] 
                # 为键sorted_word创建一个新的键值对,值是一个空列表
                # 例如:hash_map = {"aet": []}
            
            # 将当前单词添加到对应的分组中
            hash_map[sorted_word].append(word) # 因为键所对应的值是一个列表,所以用append
        
        # 返回哈希表中的所有分组
        return list(hash_map.values())
  • 时间复杂度: O(n * k * logk), n是单词数量, k是单词的最大长度
  • 空间复杂度:O(n*k), n是单词的数量, k是单词的平均长度
http://www.dtcms.com/a/64467.html

相关文章:

  • DeepSeek赋能智慧环保:为环境资源保护提供决策支持,开启绿色智能新时代
  • MAVEN解决版本依赖冲突
  • Mybatis 注解(详细版)
  • UE小:UE5.5 PixelStreamingInfrastructure 使用时注意事项
  • 15 | 定义简洁架构 Store 层的数据类型
  • Skyvern AI 实现 浏览器爬虫+自动化工具
  • coze ai assistant Task 2
  • Flash Attention 算法简介
  • Math.NET Numerics 库怎么装
  • 【Linux内核系列】:文件系统
  • 治愈系自媒体运营方案
  • Linux 字符设备驱动实例
  • 第二章:Qt常用界面组件
  • Java程序开发之Spring Boot快速入门:5分钟搭建RESTful API
  • angular中下载接口返回文件
  • Qt的QMenu 和 QAction的样式设置
  • 骑士74CMS_v3.34.0SE版uniapp全开源小程序怎么编译admin和member流程一篇文章说清楚
  • 计算机毕业设计:ktv点歌系统
  • 使用arm嵌入式编译器+makefile编译管理keil项目
  • openai agents SDK原理详解
  • golang从入门到做牛马:第十六篇-Go语言`range`:循环遍历的“瑞士军刀”
  • PID控制器的整定的方法
  • Java中的加盐加密:提升密码存储安全性的关键实践
  • docker 搭建alpine下nginx1.26/mysql8.0/php7.4环境
  • 【Pandas】pandas Series shift
  • 操作系统知识点28
  • Tomato靶机攻略
  • Redis超高并发分key实现
  • HDR图像处理:色调映射和色域映射参数
  • 记一次OOM异常问题排查