最长公共子序列 最长公共子序列图解

1、//求LCS的长度classLCS{public:LCS(intnx,intny,char*x,char*y);//创建二维数组c、s和一维数组a、b 。
2、并进行初始化voidLCSLength();//求最优解值(最长公共子序列长度)voidCLCS();//构造最优解(最长公共子序列)……private:voidCLCS(inti,intj);int**c,**s.m,n;char*a,*b;};intLCS::LCSLength(){for(inti=1;i<=m;i++)c[i][0]=0;for(i=1;i<=n;i++)c[0][i]=0;for(i=1;i<=m;i++)for(intj=1;j<=n;j++)if(x[i]==y[j]){c[i][j]=c[i-1][j-1]+1;s[i][j]=1;//由c[i-1][j-1]计算c[i][j]}elseif(c[i-1][j]>=c[i][j-1]){c[i][j]=c[i-1][j];s[i][j]=2;//由c[i-1][j]得到c[i][j]}else{c[i][j]=c[i][j-1];s[i][j]=3;//由c[i][j-1]得到c[i][j]}returnc[m][n];//返回最优解值}//构造最长公共子序列voidLCS::CLCS(inti,intj){if(i==0||j==0)return;if(s[i][j]==1){CLCS(i-1,j-1);cout<
【最长公共子序列 最长公共子序列图解】本文到此分享完毕 , 希望对大家有所帮助 。
-- 展开阅读全文 --

    推荐阅读