0
的我有兩個字符串最長公共子序列程序拋出一個字符串索引超出範圍錯誤
STR1 =「bqdrcvefgh」
STR2 =「abcvdefgh」
我想找到這兩者之間的LCS但我遇到字符串索引超出範圍exception.This是我的代碼
str1 = "bqdrcvefgh"
str2 = "abcvdefgh"
#taking str1 as column and str2 as row
lis = [[0]*(len(str1)+1) for i in range(len(str2)+1)]
#The first row and first column has default value of 0
for i in range(1,len(str2)+1):
for j in range(1,len(str1)+1):
if str2[i]==str1[j]:
lis[i][j] = lis[i-1][j-1]+1
else:
lis[i][j] = max(lis[i][j-1],lis[i-1][j])
#length of the longest LCS
print(lis[len(str2)][len(str1)])
我做錯了什麼?
PS-正確的答案是7個
你能解釋一下爲什麼我不應該運行在1環,因爲第一行和第一列具有零默認值? –
@SouvikRay你正在迭代使用相同索引的字符串 – alfasin
哦!我沒有注意到!謝謝指出! –