题目:
代码思路:根据特征进行归类就用散列表/哈希表。字母异位词根据字母大小顺序排序后的key值,key值一样的就添加到一起,作为value值。
散列表是哈希表的一种表述。它们都是根据键(Key)直接访问在内存存储位置的数据结构,就可以在接近 O(1) 的时间内快速地查找对应的值,而不需要逐个遍历,它综合了数组和链表的优点。
import collections
class Solution:
def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
hashtable = collections.defaultdict(list)
for s in strs:
key = "".join(sorted(s)) #字符串排序后一样的放在一起
hashtable[key].append(s) # sorted(st) 相同的字符串分到同一组
return list(hashtable.values())