zoukankan      html  css  js  c++  java
  • 【LeetCode】49. Group Anagrams

    Given an array of strings, group anagrams together.

    For example, given: ["eat", "tea", "tan", "ate", "nat", "bat"]
    Return:

    [
      ["ate", "eat","tea"],
      ["nat","tan"],
      ["bat"]
    ]

    解法1:

    把含有相同字母的字符串分之同一组,对每组的值sorted

    1 class Solution(object):
    2     def groupAnagrams(self, strs):
    3         """
    4         :type strs: List[str]
    5         :rtype: List[List[str]]
    6         """
    7         return [sorted(x) for _,x in itertools.groupby(sorted(strs, key=sorted),key=sorted)]

    解法2:

    把每一个含有相同字母的字符串散列到同一个key,然后对每个value排序即得。

     1 class Solution(object):
     2     def groupAnagrams(self, strs):
     3         """
     4         :type strs: List[str]
     5         :rtype: List[List[str]]
     6         """
     7         dd = collections.defaultdict(list)
     8         for s in strs:
     9             dd[tuple(sorted(s))].append(s)
    10         return map(sorted, dd.values())
  • 相关阅读:
    socket 第一课
    _getitem__ __setitem__ __delitem__ __len__
    单继承&多继承 注意点
    面对对象 类&对象
    异常检测
    模块导入
    序列化模块注意点 json&pickle
    re模块
    filter和map
    Maven入门
  • 原文地址:https://www.cnblogs.com/fcyworld/p/6498710.html
Copyright © 2011-2022 走看看