《代码随想录》学习笔记,原链接:代码随想录
class Solution:
def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
hash_table = {} # 构建哈希字典
result = []
for i in range(len(strs)): # 遍历字符串列表
key = "".join(sorted(strs[i])) # 将当前遍历的字符串排序后得到对应的key,sorted(strs[i])的结果是排序后的字母列表,所以需要使用.join()将其拼接成字符串
if key not in hash_table: # 当前key未被记录在hash_table中
hash_table[key] = [strs[i]] # 新建一个key-value键值对
else:
hash_table[key].append(strs[i]) # 如果key已经存在,则将strs[i]扩展到key对应的value中
for key in hash_table: # 遍历hash_table,并根据key将对应的value拼接成列表
result.append(hash_table[key])
return result
【注】
- 将当前遍历的字符串排序,作为该字符串对应的key。
- sorted(strs[i])的结果是排序后的单个字母组成的列表,所以需要使用"".join()将其拼接成字符串
- 遍历字典时使用for key in hash_table:,不能使用for key, value in hash_table:,否则会报错。