使用 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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP