首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无动态规划的长度最长公共子序列

问无动态规划的长度最长公共子序列
EN

Stack Overflow用户
提问于 2021-07-11 04:34:40
回答 1查看 92关注 0票数 0

我正在做一个练习,在没有动态编程的情况下寻找最长的公共子序列(LSC),到目前为止,我有返回最长公共子序列的代码,但我还需要返回序列的长度,我必须做什么?

这是返回最长公共子序列的代码

代码语言:javascript
复制
def lcs(str1, str2):
    
    if len(str1) == 0 or len(str2) == 0:
        return ""
    if str1[-1] == str2[-1]:
        return lcs(str1[:-1], str2[:-1]) + str1[-1]
  
    t1 = lcs(str1[:-1], str2)
    t2 = lcs(str1, str2[:-1])
    if len(t1) > len(t2):
        return t1
    else:
        return t2

如何返回序列的长度?

EN

回答 1

Stack Overflow用户

发布于 2021-07-11 05:08:52

只需让您的return语句返回在原始语句中返回的字符串的长度:

代码语言:javascript
复制
def lcs(str1, str2):
    if len(str1) == 0 or len(str2) == 0:
        return 0 #len("")
    if str1[-1] == str2[-1]:
        return lcs(str1[:-1], str2[:-1]) + 1
    return max(lcs(str1[:-1], str2),lcs(str1, str2[:-1]))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68331337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档