标题:最长公共子序列
取消只看楼主
欣飞飞
Rank: 1
等 级:新手上路
帖 子:20
专家分:1
注 册:2013-10-6
结帖率:100%
 问题点数:0 回复次数:0 
最长公共子序列
谁能跟我说说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]);
只需这两句个我解释一下就可以了,主要是为什么要这样我不清楚!!
2014-04-12 15:52



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-430004-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.213516 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved