当前位置: 首页 > 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是单词的平均长度

相关文章:

  • 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原理详解
  • 银行积分大幅贬值遭质疑,涉及工行、中行、农行等
  • 讲座|消逝之钟:《红楼梦》与《布登勃洛克一家》中的时间观
  • 俄代表团:16日上午将继续“等候乌代表团”
  • 张广智︱“编年事辑”:打开学人心路历程的窗户
  • 青海省交通运输厅副厅长田明有接受审查调查
  • 鸿海下调全年营收展望:AI服务器业务强劲,预计今年营收增超50%