zoukankan      html  css  js  c++  java
  • 最长公共子序列

    1619: P1050

    时间限制: 1 Sec  内存限制: 128 MB
    提交: 38  解决: 28
    [提交][状态][讨论版]

    题目描述

    一个字符串A的子串被定义成从A中顺次选出若干个字符构成的串。如A=“cdaad" ,顺次选1,3,5个字符就构成子串" cad" ,现给定两个字符串,求它们的最长共公子串。

    输入

    第一行两个字符串用空格分开。

    输出

    最长子串的长度。

    样例输入

    abccd aecd
    

    样例输出

    3
    

    提示

    两个串的长度均小于2000

    DP水题,不解释

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    
    using namespace std;
    int f[2005][2005];
    int main()
    {
        char char1[2005],char2[2005];
        scanf("%s %s",char1+1,char2+1);
        for(int i=1;i<=strlen(char1+1);i++)
            for(int j=1;j<=strlen(char2+1);j++)
            {
                if(char1[i]==char2[j])
                f[i][j]=f[i-1][j-1]+1;else
                f[i][j]=max(f[i-1][j],f[i][j-1]);
            }
        cout<<f[strlen(char1+1)][strlen(char2+1)]<<endl;    
    }
  • 相关阅读:
    javascript 编码规范
    javascript 减少全部变量
    轮播图 jquery
    SVN MAC
    php excel
    php email
    查看网站后台
    linux 下载文件
    第6周小组作业:软件测试和评估
    第4周小组作业:WordCount优化
  • 原文地址:https://www.cnblogs.com/dancer16/p/6890928.html
Copyright © 2011-2022 走看看