2007winter

做自己真心想做的事,你就没事了

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

记录一下:

#include <iostream>
using namespace std;

int dp[21][21];
char X[21];
char Y[21];

void main()
{
    int i,j;
    cin.getline(X,20);
    cin.getline(Y,20);

    int xlen=strlen(X);
    int ylen=strlen(Y);

    for ( i=1;i<=xlen;++i)
    {
        for ( j=1;j<=ylen;++j)
        {
            if (X[i-1]==Y[j-1])
            {
                dp[i][j]=dp[i-1][j-1]+1;
            }
            else if (dp[i][j-1]>dp[i-1][j])
            {
                dp[i][j]=dp[i][j-1];

            }
            else
                dp[i][j]=dp[i-1][j];


        }
    }

    printf("Length of LCS is:%d\n",dp[xlen][ylen]);

    i=xlen;
    j=ylen;
    int k=dp[i][j];
    char lcs[21]={'\0'};

    while (i&&j)
    {
        if (X[i-1]==Y[j-1]&&dp[i][j]==dp[i-1][j-1]+1)
        {
            lcs[--k]=X[i-1];
            --i;
            --j;
        }
        else if (X[i-1]!=Y[j-1]&&dp[i][j-1]<dp[i-1][j])
        {
            --i;
        }
        else
        {

            --j;
        }
    }

    printf("%s\n",lcs);
    system("pause");
}

 

posted on 2013-01-15 17:04  2007winter  阅读(124)  评论(0)    收藏  举报