poj-2806-公共子序列-C语言-动态规划

来源:互联网 发布:js点击按钮弹出对话框 编辑:程序博客网 时间:2024/05/23 18:08

状态为两个字符串所比较的位数,值是比较部分已有的公共子序列的长度。

/*******************************************文件名:poj-2806**Copyright (c) 2010-2020 OrdinaryCrazy**创建人:OrdinaryCrazy**日期:20170726**描述:poj-2806参考答案**版本;1.0*****************************************/#include <stdio.h>#include <string.h>#define LENGTH 210short maxlen[LENGTH][LENGTH];//记录状态对应值的二维数组int main(){    char s1[LENGTH],s2[LENGTH];    while(scanf("%s%s",s1+1,s2+1)==2)    {        short len1=strlen(s1+1),len2=strlen(s2+1),i,j;        for(i=0;i<=len1;i++)            maxlen[i][0]=0;        for(j=0;j<=len2;j++)            maxlen[0][j]=0;        for(i=1;i<=len1;i++)        {            for(j=1;j<=len2;j++)            {                if(s1[i]==s2[j])                    maxlen[i][j]=maxlen[i-1][j-1]+1;                else                    maxlen[i][j]=( maxlen[i-1][j]>maxlen[i][j-1] ? maxlen[i-1][j] : maxlen[i][j-1] );            }        }        printf("%d\n",maxlen[len1][len2]);    }    return 0;}


阅读全文
0 0
原创粉丝点击