程序找到Python中最长的递减单词链的长度?
假设我们有一个有效单词的列表,也有一个字符串s,我们必须找到最长的递减单词链的长度,这些单词可以通过以s开头并删除单个字母来生成,并且仍然是有效单词来生成。
因此,如果输入像单词=[“lii”,“limit”,“limi”,“li”,“coffee”,“jug”,“pool”,“type”]s=“limit”,则输出将是4,正如我们可以做的那样,从单词“limit”,“limit”->“limi”->“lii”->“li”开始。
为了解决这个问题,我们将按照以下步骤
定义一个功能solve()。这将需要单词,s
max_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
热门推荐
10 美好的成语祝福语简短
11 5岁宝宝祝福语简短
12 老年 生日祝福语大全简短
13 班级集体生日祝福语简短
14 对生活祝福语简短精辟
15 婶婶生日贺词简短祝福语
16 朋友花篮开业祝福语简短
17 新婚过年祝福语大全简短
18 团队海报祝福语简短英语