#49 Group Anagrams——Top 100 Liked Questions

àì夳堔傛蜴生んèń 2022-01-30 03:43 327阅读 0赞

Given an array of strings, group anagrams together.

Example:

  1. Input: ["eat", "tea", "tan", "ate", "nat", "bat"],
  2. Output:
  3. [
  4. ["ate","eat","tea"],
  5. ["nat","tan"],
  6. ["bat"]
  7. ]

“””

第一次:参考官方答案,使用collections包,可直接转成如下格式:

20190517223727530.png

“””

  1. class Solution(object):
  2. def groupAnagrams(self, strs):
  3. """
  4. :type strs: List[str]
  5. :rtype: List[List[str]]
  6. """
  7. ans = []
  8. d = collections.defaultdict(list)
  9. for s in strs:
  10. d[tuple(sorted(s))].append(s)
  11. return d.values()

“””

Runtime: 84 ms, faster than 98.57% of Python online submissions for Group Anagrams.

Memory Usage: 16.3 MB, less than 31.44% of Python online submissions for Group Anagrams.

“””

“””

第二次:更好理解:建立字典,key是排序后的单词,value是与排序后单词相等的原单词

“””

  1. class Solution(object):
  2. def groupAnagrams(self, strs):
  3. """
  4. :type strs: List[str]
  5. :rtype: List[List[str]]
  6. """
  7. """
  8. 建立字典,key是排序后的单词,value是与排序后单词相等的原单词
  9. """
  10. res = {}
  11. for s in strs:
  12. if ''.join(sorted(s)) not in res:
  13. res[''.join(sorted(s))] = [s]
  14. else:
  15. res[''.join(sorted(s))].append(s)
  16. return res.values()

“””

Runtime: 100 ms, faster than 81.66% of Python online submissions for Group Anagrams.

Memory Usage: 15.4 MB, less than 90.72% of Python online submissions for Group Anagrams.

“””

注:import collections

collections包的使用:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3N1aXh1ZWppZQ_size_16_color_FFFFFF_t_70

发表评论

表情:
评论列表 (有 0 条评论,327人围观)

还没有评论,来说两句吧...

相关阅读