用 Python 编写的程序,从单词列表中找出最大的字谜分组

pythonserver side programmingprogramming更新于 2026/1/17 22:36:17

假设我们有一个字符串单词列表,我们必须将所有字谜分组在一起并返回最大分组的大小。

因此,如果输入为 words = ["xy", "yx", "xyz", "zyx", "yzx", "wwwww"],则输出将为 3,因为 ["xyz", "zyx", "yzx"] 是最大的分组。

为了解决这个问题,我们将遵循以下步骤 −

  • lookup := 一个新的映射,最初为空

  • res := 0

  • 对于单词中的每个 i,执行

    • p := 按字典顺序对 i 进行排序

    • 如果 p 在查找中,则增加计数,否则为 1

    • res := res 和 lookup[p] 的最大值

  • 返回 res

让我们看看下面的实现以便更好地理解 −

示例

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

相关文章


有用资源