ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

leecode 热题100(49.字母异位词分组)

leecode 热题100(49.字母异位词分组) 题目给你一个字符串数组请你将字母异位词 组合在一起。可以按任意顺序返回结果列表。示例 1:输入:strs [eat, tea, tan, ate, nat, bat]输出:[[bat],[nat,tan],[ate,eat,tea]]解释在 strs 中没有字符串可以通过重新排列来形成bat。字符串nat和tan是字母异位词因为它们可以重新排列以形成彼此。字符串ateeat和tea是字母异位词因为它们可以重新排列以形成彼此。示例 2:输入:strs []输出:[[]]示例 3:输入:strs [a]输出:[[a]]提示1 strs.length 1040 strs[i].length 100strs[i]仅包含小写字母我的代码其实这道题我都没做出来思考了接近一个小时一直卡着没办法就把思路给AI讲了AI写的class Solution: def groupAnagrams(self, strs: list[str]) - list[list[str]]: groups {} for word in strs: key .join(sorted(word)) if key not in groups: groups[key] [] groups[key].append(word) return list(groups.values())这里的原理其实是哈希表​​哈希表是一种通过​​键Key​​ 直接访问​​值Value​​ 的数据结构。它的核心思想是​​通过哈希函数将键映射到数组的特定位置从而实现快速访问​​。在这里就表现为把每一个元素比如eat、tea、ate转换成一样的编号key比如aet就是按字母顺序排列然后通过aet这个编号实现快速存取value。优秀代码class Solution: def groupAnagrams(self, strs: list[str]) - list[list[str]]: mp collections.defaultdict(list) for st in strs: key .join(sorted(st)) mp[key].append(st) return list(mp.values())其中mp collections.defaultdict(list) 这句代码中的 collections 是 Python 自带的一个工具模块defaultdict 是里面提供的一种特殊字典。list 就是 Python 里的列表类型本身这里把它传进去意思是当碰到不存在的 key 时请用 list() 来自动创建一个默认值。
返回列表