49. 字母异位词分组
image-20201214112411400排序
遍历数组,然后对字符串进行排序,如果是异或词,那他们排序后的值也是一样,利用这一点,通过维护一个默认存放空数组的字典将他们合并到一起。
# 通俗解法
class Solution:
def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
ans = {}
for s in strs:
key = "".join(sorted(s))
if ans.get(key) is None:
ans[key] = [s]
else:
ans[key].append(s)
return list(ans.values())
# 优雅写法
import collections
class Solution:
def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
ans = collections.defaultdict(list)
for s in strs:
key = "".join(sorted(s))
ans[key].append(s)
return list(ans.values())
image-20201214113138963
网友评论