最长公共子序列
谁能跟我说说LCS的思想啊!!我只知道dp公式int LCS(char a[],char b[])
{
int i,j,len1,len2;
len1=(int)strlen(a);
len2=(int)strlen(b);
for(i=1;i<=len1;i++)
for(j=1;j<=len2;j++)
{
if(a[i-1]==b[j-1])
f[i][j]=f[i-1][j-1]+1;
else
f[i][j]=max(f[i-1][j],f[i][j-1]);
}
return f[len1][len2];
}
看上去有点稀里糊涂的!!
f[i][j]=f[i-1][j-1]+1;
f[i][j]=max(f[i-1][j],f[i][j-1]);
只需这两句个我解释一下就可以了,主要是为什么要这样我不清楚!!