力扣刷题Python笔记:字母异位词分组

it2023-08-02  66

题目

给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。

来源:力扣(LeetCode)

Python解法

字典解法

一开始本来打算用暴力解法解出来,写了一个小时程序,每次提交都有不同的错误,需要考虑的情况太多了,于是看了题解,发现别人的代码简单易懂,膜拜!

具体的解题思路如下: ①创建一个字典 result; ②对 strs 中的每一个元素排序并转换成元组,作为字典的键; ③如果字符串的字符相同,只是顺序不同,那么它将会被放到同一个键里; ④最终返回字典的值。

代码如下:

def groupAnagrams(self, strs: List[str]) -> List[List[str]]: result = {} for stri in strs: key = tuple(sorted(stri)) result[key] = result.get(key, []) + [stri] return list(result.values())
最新回复(0)