动态规划之最长公共子序列
代码
#include<iostream>
using namespace std;
#define N 11//因为a数组长度为10
#define M 11//同理
int c[N][M]={0};
char a[N]={' ','b','c','a','b','g','a','b','c','c','c'};//
char b[N]={' ','b','d','a','f','c','a','k','c','c','c'};
void lcs()
{
int i,j;
for(i=1;i<N;i++){
for(j=1;j<M;j++){
if(a[i]==b[j]){
c[i][j]=c[i-1][j-1]+1;
}
else{
int value1=c[i-1][j];
int value2=c[i][j-1];
c[i][j]=value1>value2?value1:value2;
}
}
}
}
int main()
{
lcs();
cout<<c[10][10];
return 0;
}

浙公网安备 33010602011771号