使用 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.