ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

leetcode热题100-49:字母异位词分组

leetcode热题100-49:字母异位词分组

给你一个字符串数组,请你将  组合在一起。可以按任意顺序返回结果列表。

 

示例 1:

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

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

 

解法一:质数表法

def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
        alpha = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,51,53,57,59,61,67,71,73,79,83,87,89,91,97,101]
  cnt = defaultdict(list)
  for str in strs :
    mul = 1
    for s in str :
      mul *= alpha[ord(s)-ord('a')]
    cnt[mul].append(str)
  return list(cnt.vaules())
返回列表