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