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())

本文介绍了一种算法,用于将输入字符串数组中的同字母异序词分组。通过将每个单词排序并使用排序后的元组作为字典键,可以高效地找到所有具有相同字母但顺序不同的单词。这种方法避免了直接比较所有单词的复杂度。
482

被折叠的 条评论
为什么被折叠?



