我試圖來執行遞歸利用給我的位置數的LCS是有效的,與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)