- 论坛徽章:
- 0
|
def LCS(a,b):
s=[[0 for x in range(len(b)+1)],[0 for x in range(len(a)+1)]]
last=0
res=0
for i in range(len(a)):
for j in range(len(b)):
if (a[i]==b[j]) :
s[1-last][j+1]=s[last][j]+1
else:
s[1-last][j+1]=max(s[1-last][j],s[last][j+1])
if (s[1-last][j+1]>res):
res=s[1-last][j+1]
last=1-last
return res
a="chinese is great all kind eng a"
b="chinese is all kind eng w"
print(LCS(a,b)) | 是我错了,不该直接输出那个串,LCS如果要输出那个串中间是要记录的,而且是非连续的,但是长度绝对是没错的,是24
那个被提取出来的串是"Chinese is all kind eng ",正好24,操作是把a的" great"和"a"删掉,b的"w"删掉就可以了 |
|