题目
给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。
来源:力扣(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
())