Given an array of strings, group anagrams together.
Example:
Input: ["eat", "tea", "tan", "ate", "nat", "bat"],
Output:
[
["ate","eat","tea"],
["nat","tan"],
["bat"]
]
把相同字母,不同顺序的单词放在一起。
思路就是把单词sorted()一下,然后做为字典中的key进行比较,如果sorted()的值相同,则添加到value中。
注意的是python字典的key不能用list,但是可以用tuple。(list可以修改,tuple不能修改)
class Solution:
def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
d={}
for word in strs:
nword=tuple(sorted(word))
d[nword]=d.get(nword,[])+[word]
return list(d.values())