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