目录
题目
- 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
字母异位词 是由重新排列源单词的所有字母得到的一个新单词。
示例 1:
输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]
输出: [["bat"],["nat","tan"],["ate","eat","tea"]]
示例 2:
输入: strs = [""]
输出: [[""]]
示例 3:
输入: strs = ["a"]
输出: [["a"]]
题解:字典
- 首先,循环遍历每一个单词,通过排序建立字典的键。其次,将单词加入字典中:分两种情况,如果没有键在字典中,那么新添加一个列表;如果键在字典中,那么在字典中的该键下加入。最后,返回的是list(字典的值)
class Solution:
def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
table = {}#创建一个空字典,strs = ["eat", "tea"]
for s in strs:#遍历字符串列表 strs
s_ = "".join(sorted(s))#对当前字符串 s=eat进行排序赋值给s_=aet
if s_ not in table:#s_ 不在字典 table 中,
table[s_] = [s]#所以将 s_ 作为键,将 [s] 作为对应的值存入字典 table={'aet': ['eat']}
else:#当遍历到第二个字符tea时,排序后s_=aet已经在字典 table 中存在
table[s_].append(s)#将当前字符串 s 追加到对应的值列表中,table = {'aet': ['eat', 'tea']}
return list(table.values())#遍历完所有的字符串后,返回字典 table 中的值
标签:aet,49,strs,异位,分组,tea,table,eat,字典
From: https://www.cnblogs.com/lushuang55/p/18047950