using namespace std;char a[2001],b[2001];int ans[2001][2_2076: 【lcs模板】最长公共子序列">
当前位置:   article > 正文

【模板】最长公共子序列 LCS_2076: 【lcs模板】最长公共子序列

2076: 【lcs模板】最长公共子序列

题目描述

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

输入

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

输出

最长子序列的长度。

样例输入
abccd aecd

样例输出
3

提示

两个串的长度均小于2000

    #include<bits/stdc++.h>
    using namespace std;
    char a[2001],b[2001];
    int ans[2001][2001];
    int main()
    {
        scanf("%s %s",a,b);
        int num1=strlen(a);
        int num2=strlen(b);
        for(int i=1;i<=num1;i++)
        {
            for(int j=1;j<=num2;j++)
            {
                ans[i][j]=max(ans[i-1][j],ans[i][j-1]);
                if(a[i-1]==b[j-1]) 
                {
                    ans[i][j]=max(ans[i-1][j-1]+1,ans[i][j]);
                }
            }
        }
        printf("%d",ans[num1][num2]);
        return 0;
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/193677?site
    推荐阅读
    相关标签
      

    闽ICP备14008679号