[英]TypeError: 'function' object is not subscriptable while finding longest common subsequence
我試圖找到兩個字符串中最長的公共子序列。到目前為止,我已經編寫了以下代碼
def LCS(u, v): # u[0..m-1], v[0..n-1]
for r in range(len(u) + 1):
LCS[r][len(v) + 1] = 0 # r for row
for c in range(len(v) + 1):
LCS[len(u) + 1][c] = 0 # c for col
for c in range(len(v), -1, -1):
for r in range(len(u), -1, -1):
if (u[r] == v[c]):
LCS[r][c] = 1 + LCS[r + 1][c + 1]
else:
LCS[r][c] = max(LCS[r + 1][c],
LCS[r][c + 1])
print (LCS[0][0])
s = input()
si=input()
LCS(s,si)
我得到的錯誤是
Traceback (most recent call last):
File "C:/Users/udit/PycharmProjects/untitled/l.py", line 16, in <module>
LCS(s,si)
File "C:/Users/udit/PycharmProjects/untitled/l.py", line 3, in LCS
LCS[r][len(v) + 1] = 0 # r for row
TypeError: 'function' object is not subscriptable
您的函數名為LCS
。 您不能為函數對象添加下標。
(例如)這行代碼的目的是什么:
LCS[r][len(v) + 1] = 0 # r for row
您是否打算遞歸調用 LCS 函數? 如果是這樣,你有兩個問題。
首先,要調用函數,您需要括號。 像這樣的東西:
LCS(foo, bar)
但是您已經清楚地知道這一點,因為在代碼示例的底部正確調用了 LCS。 所以我不知道該怎么想。
假設您打算調用 LCS,第二個更大的問題是您要分配給函數的結果,這完全沒有意義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.