您的位置:首页 > 其它

dp最长公共子序列

2016-01-27 20:25 260 查看
#include<stdio.h>

#include<string.h>

#include<stdlib.h>

int main()

{

char a[1000]={0},b[1000]={0};

int dp[1000][1000]={0};

while(scanf("%s%s",a,b)!=EOF)

{

int a1=strlen(a);

int b1=strlen(b);

for(int i=1;i<a1+1;i++)

{

for(int j=1;j<b1+1;j++)

{

if(a[i-1]==b[j-1])

{

dp[i][j]=dp[i-1][j-1]+1;

}

else

{

dp[i][j]=dp[i-1][j]>dp[i][j-1]?dp[i-1][j]:dp[i][j-1];

}

}

}

printf("%d\n",dp[a1][b1]);

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: