排序分类
思路:
建一个字典,把数组中排序后的字符串作为key值,对应数组中的原字符串添加到value中的数组里。
代码:
class Solution: def groupAnagrams(self, strs: List[str]) -> List[List[str]]: def sortStr(word:str)->str: return "".join(sorted(list(word))) dic = {} for word in strs: sortedWord = sortStr(word) if sortedWord in dic: dic[sortedWord].append(word) else: dic[sortedWord] = [word] return list(dic.values())
统计字符出现次数
思路:
建一个字典,把每个字符串中字符在26个英文字母数组中出现的次数作为key值,对应字符串添加到value数组中。
代码:
class Solution: def groupAnagrams(self, strs: List[str]) -> List[List[str]]: def keyStr(word:str)->str: key = [0] * 26 for char in word: key[ord(char) - ord(‘a‘)] += 1 return ‘‘.join([str(i) for i in key]) dic = {} for word in strs: key = keyStr(word) if key in dic: dic[key].append(word) else: dic[key] = [word] return list(dic.values())
原文:https://www.cnblogs.com/nilhxzcode/p/12997077.html