思路:利用字典,把每一个元素重新排序放入字典,出现过就放入对应的键里,没出现就新建一个键
这里涉及到一键多值的用法,可以用set.setdefault()
函数实现。
class Solution:
def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
h = {}
for i in range(len(strs)):
# val = sum([ord(x) for x in strs[i]])
val = ''.join(sorted(strs[i]))
# if val not in h: 这一步可以省掉,直接用setdefault
# h[val] = strs[i]
h.setdefault(val,[]).append(strs[i]) #存在就合并同类,不存在就新建
return list(h.values())
set.setdefault()
的用法可以参考以下博客:
1、Python3 字典 setdefault() 方法
1、[python]字典的一键多值
2、004_015 Python 字典的一键多值,即一个键对应多个值