【LeetCode】49. 字母异位词分组

49. 字母异位词分组

知识点:字符串;哈希表

题目描述

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

字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。

示例
示例 1输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"] 输出: [["bat"],["nat","tan"],["ate","eat","tea"]] 示例 2: 输入: strs = [""] 输出: [[""]] 示例 3输入: strs = ["a"] 输出: [["a"]]

解法一:排序

字母异位词就是说字符串所含的字符一样,并且每个字符的个数也是一样的。
所以可以直接使用排序,字母异位词排序完后肯定是一样的,然后用一个哈希表存储就可以了

class Solution: def groupAnagrams(self, strs: List[str]) -> List[List[str]]: hashtable = {} for cur_str in strs: sort_str = tuple(sorted(cur_str)) # 字典的key不能是列表 hashtable[sort_str] = hashtable.get(sort_str, []) + [cur_str] return list(hashtable.values())

__EOF__

本文作者Curryxin
本文链接https://www.cnblogs.com/Curryxin/p/16147930.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   Curryxin  阅读(38)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
Live2D
欢迎阅读『【LeetCode】49. 字母异位词分组』
点击右上角即可分享
微信分享提示