#include<stdio.h>
#include<string.h>
int max(int a,int b)
{
return a>b?a:b;
}
int m[1000][1000];
int LCS(char *x,char *y)
{
int i,j,xs=strlen(x),ys=strlen(y);
for(i=1; i <= xs; ++i)
for(j=1; j <= ys; ++j)
m[i][j] = (x[i-1] == y[j-1])?( m[i-1][j-1] + 1):max(m[i-1][j],m[i][j-1]);
return m[xs][ys];
}
int main()
{
printf("%d\n",LCS("asdf","adfsd"));
return 0;
}
最长公共子序列
最新推荐文章于 2023-06-01 19:25:01 发布