Skip to content

Latest commit

 

History

History
41 lines (34 loc) · 1.11 KB

File metadata and controls

41 lines (34 loc) · 1.11 KB

方法一:排序数组分类

当且仅当它们的排序字符串相等时,两个字符串是字母异位词。

class Solution:
    def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
        d = {}
        for s in strs:
            k = tuple(sorted(s))  # tuple可以作为字典的key
            d[k] = d.get(k, []) + [s]
        return list(d.values())
    
class Solution:
    def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
        d ={}
        for s in strs:
            k = ''.join(sorted(s))
            if k not in d:
                d[k] = [s]
            else:
                d[k].append(s)
        return list(d.values())

方法二:按计数分类

当且仅当它们的字符计数(每个字符的出现次数)相同时,两个字符串是字母异位词。

class Solution:
    def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
        d = {}
        for s in strs:
            k = [0] * 26
            for i in s:
                k[ord(i) - ord('a')] += 1
            d[tuple(k)] = d.get(tuple(k), []) + [s]
        return list(d.values())