Skip to content

Latest commit

 

History

History
51 lines (36 loc) · 1.65 KB

49-group-anagrams.md

File metadata and controls

51 lines (36 loc) · 1.65 KB

49. Group Anagrams - 字母异位词分组

给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。

示例:

输入: ["eat", "tea", "tan", "ate", "nat", "bat"],
输出:
[
  ["ate","eat","tea"],
  ["nat","tan"],
  ["bat"]
]

说明:

  • 所有输入均为小写字母。
  • 不考虑答案输出的顺序。

题目标签:Hash Table / String

题目链接:LeetCode / LeetCode中国

题解

字母异位词(字母相同,但排列不同的字符串)判断,一般不是做字符统计然后比对统计结果,而是设计一个类似“特征函数”的东西,字母异位词有相同的输出结果。其实这样的特征函数可以很简单:把字符排序一下就行。字母异位词经过字符排序后得到的结果是一样的。

Language Runtime Memory
python3 128 ms N/A
class Solution:
    def groupAnagrams(self, strs):
        """
        :type strs: List[str]
        :rtype: List[List[str]]
        """
        d = collections.defaultdict(list)
        for s in strs:
            d[''.join(sorted(s))].append(s)
        return list(d.values())