您的位置:首页 > 产品设计 > UI/UE

杭电1159——Common Subsequence

2014-06-07 17:43 295 查看
[align=left]Problem Description[/align]
A subsequence of a given sequence is the given sequence with
some elements (possible none) left out. Given a sequence X =
<x1, x2, ..., xm> another sequence Z
= <z1, z2, ..., zk> is a subsequence
of X if there exists a strictly increasing sequence
<i1, i2, ..., ik> of indices of X
such that for all j = 1,2,...,k, xij = zj. For example, Z =
<a, b, f, c> is a subsequence of X =
<a, b, c, f, b, c> with index
sequence <1, 2, 4, 6>. Given two
sequences X and Y the problem is to find the length of the
maximum-length common subsequence of X and Y.

The program input is from a text file. Each data set in the file
contains two strings representing the given sequences. The
sequences are separated by any number of white spaces. The input
data are correct. For each set of data the program prints on the
standard output the length of the maximum-length common subsequence
from the beginning of a separate line.
[align=left] [/align]
[align=left]Sample Input[/align]
abcfbc abfcab

programming contest

abcd mnp

[align=left]Sample Output[/align]

4 2 0

# include<stdio.h>

# include<string.h>

int num[1001][1001];

int main()

{

    int i,j,len1,len2,a,b;

    char s1[1000],s2[1000];

    while(scanf("%s%s",s1+1,s2+1)!=EOF)

    {

        len1=strlen(s1+1);

        len2=strlen(s2+1);

        for(i=0;i<len1+1;i++)

            num[i][0]=0;

        for(i=0;i<len2+1;i++)

            num[0][i]=0;

        for(i=1;i<=len1;i++)

            for(j=1;j<=len2;j++)

            {

                if(s1[i]==s2[j])

                  num[i][j]=num[i-1][j-1]+1;

                 else

                 {

                     a=num[i][j-1];

                     b=num[i-1][j];

                     if(a>b)

                         num[i][j]=a;

                     else

                         num[i][j]=b;

                 }

            }

        printf("%d\n",num[len1][len2]);

    }

    return 0;

}

 
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: