数组也可以作为哈希表的键。
由于互为字母异位词的两个字符串包含的字母相同,因此两个字符串中的相同字母出现的次数一定是相同的,故可以将每个字母出现的次数使用数组存储,作为哈希表的键。
由于字符串只包含小写字母,因此对于每个字符串,可以使用长度为 26 的数组记录每个字母出现的次数。需要注意的是,数组是可变类型,不能直接作为哈希表的键,python中可以转为不可变类型的字符串或者tuple,就可以作为哈希表的键了。
fromcollectionsimportdefaultdictclassSolution(object):defgroupAnagrams(self,strs):""" :type strs: List[str] :rtype: List[List[str]] """alphabet_dict=defaultdict(list)forwordinstrs:alphabet_list=[0]*26forcinword:alphabet_list[ord(c)-ord("a")]+=1alphabet_tuple=tuple(alphabet_list)alphabet_dict[alphabet_tuple].append(word)returnalphabet_dict.values()