gpt4 book ai didi

algorithm - 如何在指数时间内找到最长公共(public)子序列?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:54:17 25 4
gpt4 key购买 nike

我可以使用动态规划以正确的方式做到这一点,但我不知道如何在指数时间内做到这一点。

我正在寻找两个字符串之间最大的公共(public)子序列。注意:我指的是子序列,而不是子字符串,组成序列的符号不需要是连续的。

最佳答案

只需将动态编程代码中的表中的查找替换为递归调用。换句话说,只需执行 LCS 的递归公式即可。问题:

enter image description here

编辑

在伪代码中(实际上几乎是 python):

def lcs(s1, s2):
if len(s1)==0 or len(s2)==0: return 0
if s1[0] == s2[0]: return 1 + lcs(s1[1:], s2[1:])
return max(lcs(s1, s2[1:]), lcs(s1[1:], s2))

关于algorithm - 如何在指数时间内找到最长公共(public)子序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9010479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com