Я попытался реализовать в LCS простейшим способом, но я не могу получить правильное значение. Вместо 4 я получаю. Я не уверен, что случилось с моим кодом:Python: не получается Длина самой длинной общей подпоследовательности списков
X= ['A','B','C','B','D','A','B']
Y= ['B','D','C','A','B','A','X','Y']
m= len(X)
n= len(Y)
c={}
for i in range(1,m) :
c[i,0]=0
for j in range(0,n):
c[0,j]=0
for i in range (1,m):
for j in range (1,n):
if X[i]==Y[j]:
c[i,j]=c[i-1,j-1]+1
elif c[i-1,j] >= c[i,j-1]:
c[i,j]=c[i-1,j]
else:
c[i,j]=c[i,j-1]
print c[m-1,n-1]
print c
c [i, 0] = 0 - Эта строка выглядит как плохой синтаксис - как вы думаете, эта линия работает? Также .. какой результат вы получаете, и какой результат вы хотите получить? Приведи примеры. – Totem