程序找到Python中最长的递减单词链的长度?
假设我们有一个有效单词的列表,也有一个字符串s,我们必须找到最长的递减单词链的长度,这些单词可以通过以s开头并删除单个字母来生成,并且仍然是有效单词来生成。
因此,如果输入像单词= [“ lii”,“ limit”,“ limi”,“ li”,“ coffee”,“ jug”,“ pool”,“ type”] s =“ limit”,则输出将是4,正如我们可以做的那样,从单词“ limit”,“ limit”->“ limi”->“ lii”->“ li”开始。
为了解决这个问题,我们将按照以下步骤
定义一个功能
solve()
。这将需要单词,smax_num:= 0
对于每个我说的话
对于范围0到s大小的j,执行
max_num:=最大值为1 + solve(单词,s [从索引0到j-1]连接s [从索引j +1到结尾])和max_num
如果我与s相同,则
返回max_num
示例
class Solution:def solve(self, words, s):
max_num = 0
for i in words:
if i == s:
for j in range(len(s)):
max_num = max(1 + self.solve(words, s[:j] + s[j + 1 :]), max_num)
return max_num
ob = Solution()words = ["lii", "limit", "limi", "li", "coffee", "jug", "pool", "type"]
s = "limit"
print(ob.solve(words, s))
输入值
["lii", "limit", "limi", "li", "coffee", "jug", "pool", "type"],"limit"
输出结果
4
以上是 程序找到Python中最长的递减单词链的长度? 的全部内容, 来源链接: utcz.com/z/316076.html