美文网首页
zoj1733(最长公共子序列)

zoj1733(最长公共子序列)

作者: Alan66 | 来源:发表于2017-07-14 18:48 被阅读0次

很简单的一道题

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char x[10005],y[10005];
int c[1005][1005];

int Lcs_length( char *str1, char *str2)
{
    int len1 = strlen(str1),
        len2 = strlen(str2);
    int i,j;
    for( i = 1; i <= len1; i++)
        c[i][0] = 0;
    for ( j = 0; j <= len2; j++)
        c[0][j] = 0;
    for(  i = 1; i <= len1; i++)
        for( j = 1; j <= len2; j++) {
            if( str1[i-1] == str2[j-1] )
                c[i][j] = c[i-1][j-1] + 1;
            else if (c[i-1][j] >= c[i][j-1])
                    c[i][j] = c[i-1][j];
            else c[i][j] = c[i][j-1];
        }
        return c[len1][len2];
}

void Find_Lcs( char *str1, char *str2)
{
    int i,j,length;
    int len1 = strlen(str1),
        len2 = strlen(str2);
    length = Lcs_length(str1, str2);
    printf("%d\n", length);
}

int main()
{
    while(scanf("%s%s",x,y) != EOF){
        Find_Lcs(x,y);
        memset(x,0,sizeof(x));
        memset(y,0,sizeof(y));
        memset(c,0,sizeof(c));
    }

    return 0;
}

相关文章

  • 公共子序列问题

    最长公共子序列 最长上升子序列 最长公共上升子序列

  • zoj1733(最长公共子序列)

    很简单的一道题

  • 最长公共子序列和最长公共子串

    最长公共子序列和最长公共子串区别 最长公共子串(Longest CommonSubstring)和最长公共子序列(...

  • 算法(04)动态规划

    零钱问题 背包问题 最长公共子序列 最长公共子串 最长上升子序列 最大连续子序列和

  • LCS问题

    LCS问题包括最长公共子序列和最长公共子串,其中,最长公共子串要求必须连续。 对于二者的求解方式 最长公共子序列:...

  • 子序列问题

    最长公共子序列 最长上升/下降/不升/不降子序列

  • 子串 子序列 总结

    最长公共子串 子串的要求比子序列严格,所以可以讨论子串的终点 最长公共子序列 DP解 递归+memo 最长公共回文...

  • 序列比对(二十四)——最长公共子序列

    原创:hxj7 本文介绍如何求解两个字符串的最长公共子序列。 最长公共子序列问题 前文《序列比对(23)最长公共子...

  • lintcode 最长公共子序列

    给出两个字符串,找到最长公共子序列(LCS),返回LCS的长度。说明最长公共子序列的定义: 最长公共子序列问题是在...

  • 字符串的几个问题

    1.最长公共子序列2.最长公共子串3.最长回文串4.最长回文序列5.最长递增序列6.最长先增后减序列7.(最短)编...

网友评论

      本文标题:zoj1733(最长公共子序列)

      本文链接:https://www.haomeiwen.com/subject/tyyohxtx.html