UVa 10405 - Longest Common Subsequence

来源:互联网 发布:java 集合的不同点 编辑:程序博客网 时间:2024/06/10 01:20

最长公共子序列。

代码如下:


#include <stdio.h>#include <string.h>int dp[1002][1002];int iMax(int a, int b){    if(a > b)        return a;    return b;}int main(){    char str1[1002], str2[1002];    while(gets(str1) != NULL)    {        gets(str2);        int len1 = strlen(str1);        int len2 = strlen(str2);        for(int i=0; i<1001; i++)            dp[i][0] = dp[0][i] = 0;        for(int i=1; i<=len1; ++i)            for(int j=1; j<=len2; ++j)            {                if(str1[i-1] == str2[j-1])                {                    dp[i][j] = dp[i - 1][j - 1] + 1;                }                else                {                    dp[i][j] = iMax(dp[i][j - 1], dp[i - 1][j]);                }            }        printf("%d\n", dp[len1][len2]);    }    return 0;}


原创粉丝点击