我正在尝试执行一个 LCS 函数,该函数利用递归来给我 LCS 有效的位置数,以及此处描述的 LCS 的位置:
input: LCS("smile", "tile")
output: [3, "##ile", "#ile"]
每当我尝试执行它时,它都会告诉我存在递归错误,如下所示:
RecursionError: maximum recursion depth exceeded in comparison
我的代码有什么问题?我试图通过递归替换LCS没有应用的区域,但是函数在哪里超出了它的深度?
def LCS(s1, s2):
if s1 == "" or s2 == "":
return 0
else:
if s1[0] == s2[0]:
s1 = s1 + s1[0]
s2 = s2 + s2[0]
count = 1 + LCS(s1[1:], s2[1:])
else:
s1 = s1 + '#'
count = max(LCS(s1, s2[1:]), LCS(s1[1:], s2))
array = [count] + [s1] + [s2]
print(array)