网站 备案 查询,网站投资多少钱,windows版本的wordpress,网站的下载二维码怎么做题目
给定一个字符串数组#xff0c;将字母异位词组合在一起。字母异位词指字母相同#xff0c;但排列不同的字符串。
说明
所有输入均为小写字母。
不考虑答案输出的顺序。
示例
输入: [eat, tea, tan, ate, nat将字母异位词组合在一起。字母异位词指字母相同但排列不同的字符串。
说明
所有输入均为小写字母。
不考虑答案输出的顺序。
示例
输入: [eat, tea, tan, ate, nat, bat],
输出:
[
[ate,eat,tea],
[nat,tan],
[bat]
]
解答
我们可以用一个字典存储所有组合。我们要考虑字母异位词具有什么共性显然我们将字母异位词中的字母进行排序排序后得到的结果都是一样的例如字母异位词“abc”和“bac”排序后的结果都是“abc”因此我们可以使用每一组字母异位词排序后的结果作为键这些字母异位词组成的列表作为值。
from collections import defaultdict
class Solution:
def groupAnagrams(self, strs)::param strs: List[str]
:return: List[List[str]]ans defaultdict(list)
for s in strs:
ans[tuple(sorted(s))].append(s)
return ans.values()
如有疑问或建议欢迎评论区留言~