• 2015 HUAS Summer Contest#4~F


    Description

    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, x ij = 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.

    Input

    The program input is from the std input. Each data set in the input contains two strings representing the given sequences. The sequences are separated by any number of white spaces. The input data are correct.

    Output

    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.

    Sample Input

    abcfbc         abfcab
    programming    contest 
    abcd           mnp

    Sample Output

    4
    2
    0
    解题思路:题目的意思是求两个字符串的最长子序列。但是需要注意的是:子序列不是子串,子序列这些字符可以是不连续的 但是有先后顺序;而子串是连续的。
    程序代码:
    #include<stdio.h>
    #include<string.h>
    const int maxn=1005;
    char a[maxn],b[maxn];
    int d[maxn][maxn];
    int max(int x,int y)
    {
        if(x>y) return x;
        else return y;
    }
    int main()
    {
        int i,j,t,floag,n,m;
        while(scanf("%s%s",a+1,b+1)!=EOF)
        {
            memset(d,0,sizeof(d));
            n=strlen(a+1);
            m=strlen(b+1);
            for(i=1;i<=n;i++)
            for(j=1;j<=m;j++)
            if(a[i]==b[j])  d[i][j]=d[i-1][j-1]+1;
            else  d[i][j]=max(d[i-1][j],d[i][j-1]);
            printf("%d
    ",d[n][m]);
        }
        return 0;
    }
    
  • 相关阅读:
    [转] java代码块 介绍
    win10多用户远程登录
    [读书笔记] learn python the hard way书中 有关powershell 的一些小问题
    Ansible 汇总
    Shell 研究
    Linux CenOS Python3 和 python2 共存
    Ansible安装
    MySQL 5.7.20绿色版安装详细图文教程
    Mysql常用运算符与函数汇总
    mysql 从陌生到熟练之----数据库备份恢复的实现方法
  • 原文地址:https://www.cnblogs.com/chenchunhui/p/4731282.html
Copyright © 2020-2023  润新知