UVa 10405 Longest Common Subsequence(LCS)

复制代码
#include <cstdio>
#include <cstdlib>
#include <cstring>

#define max(a,b) (((a) > (b)) ? (a) : (b))

const int MAXN = 1010;
char s[MAXN], d[MAXN];
int dp[MAXN][MAXN];

int main()
{
    while (gets(s+1) && gets(d+1))
    {
        int ls = strlen(s + 1);
        int ld = strlen(d + 1);

        memset(dp, 0, sizeof(dp));
        for (int i = 1; i <= ls; ++i)
            for (int j = 1; j <= ld; ++j)
                if (s[i] == d[j])
                    dp[i][j] = dp[i-1][j-1] + 1;
                else
                    dp[i][j] = max(dp[i][j-1], dp[i-1][j]);

        printf("%d\n", dp[ls][ld]);
    }
    return 0;
}
复制代码
posted @   kedebug  阅读(192)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示