使用 Python 从单词列表中查找最大的同义词分组的程序


假设我们有一个字符串 words,我们需要对所有同义词进行分组,并返回最大分组的大小。

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

要解决这个问题,我们将按照以下步骤操作 -

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

  • res := 0

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

    • p := 以词典方式对 i 进行排序

    • 如果 p 在 lookup 中,则增加计数,否则为 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

更新日期: 2020 年 10 月 9 日

187 次浏览

开启你的 事业

通过完成课程获取认证

开始使用
广告
© . All rights reserved.