假设我们有一个字符串单词列表,我们必须将所有字谜组合在一起并返回最大分组的大小。
因此,如果输入像单词= [“ xy”,“ yx”,“ xyz”,“ zyx”,“ yzx”,“ wwwww”]一样,则输出将为3,如[“ xyz”,“ zyx” “,” yzx“]是最大的分组。
为了解决这个问题,我们将遵循以下步骤-
查找:=一个新映射,最初为空
res:= 0
对于每个我说的话
p:=以字典方式对i排序
如果p在查找中,则增加计数,否则为1
res:= res和lookup [p]的最大值
返回资源
让我们看下面的实现以更好地理解-
class Solution: def solve(self, words): lookup = {} res = 0 for i in words: p = "".join(sorted(i)) lookup[p] = lookup.get(p, 0) + 1 res = max(res, lookup[p]) return res ob = Solution()words = ["xy", "yx", "xyz", "zyx", "yzx", "wwwww"] print(ob.solve(words))
["xy", "yx", "xyz", "zyx", "yzx", "wwwww"]
输出结果
3