最长公共子串不工作的递归解决方案

2024-05-19 07:57:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图递归地获取最长的公共子字符串,但由于某些原因,我的代码无法工作

def lcs(s, t):
    if not s or not t:
        return ''

    if s[0] is t[0]:
        return s[0] + lcs(s[1:], t[1:])

    a = lcs(s[1:], t)
    b = lcs(s, t[1:])

    return b if len(a) < len(b) else a


print(lcs("JHELLOIAHDS", "NHELLOOKSÇA"))

output>> HELLOS

这两个输入字符串是“JHELLOIAHDS”和“NHELLOOKSÇA” 并且输出应该是HELLO。 我做错了什么?为什么我得到“HELLOS”作为输出


Tags: or字符串代码lenreturnifisdef

热门问题