假设我们有一个字符串单词列表,我们必须将所有字谜组合在一起并返回最大分组的大小。
因此,如果输入像单词= [“ 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