zoukankan      html  css  js  c++  java
  • 最长公共子串长度

    这个题目应该不需要例题,但为了更好的“理解”。

    题目描述

    信息学小组截获了两个序列,序列AB,规定两个序列所隐藏的信息就是两者的最长公共子串

    注意,这里的子串是指连续的,比如说212325233212212325233的子串,而213或者223都不是212325233的子串

    现在,他们将这个任务交给你,你要找出这两个序列所隐藏信息的长度

    输入格式

    两行,A和B(A,B长度均不大于1000,A,B均由0~9之间的数字组成)

    输出格式

    一个整数为最长公共子串的长度

    样例

    样例输入

    212325233 
    312123223
    

    样例输出

    5



    #include<bits/stdc++.h>
    using namespace std;
    int dp[2005][2005];//dp[i][j]表示串xi,yi的最长公共子串长度;
    char a[2005],b[2005];
    
    
    int main(){
        scanf("%s%s", a, b);
        for(int i=0;i<=strlen(a);i++){
            dp[i][0]=0;
        }
        for(int j=0;j<=strlen(b);j++){
            dp[0][j]=0;
        }//初始化
        for(int i=1;i<=strlen(a);i++){
            for(int j=1;j<=strlen(b);j++){
                if(a[i-1]==b[j-1]){
                    dp[i][j]=dp[i-1][j-1]+1;
                } else {
                    dp[i][j]=0;
                }
            }
        }//上图是最好的解释......
        int maxn=-1;
        for(int i=1;i<=strlen(a);i++){
            for(int j=1;j<=strlen(b);j++){
                maxn=max(maxn,dp[i][j]);
            }
        }//这就不用说了
        printf("%d",maxn);
        return 0;
    }//


  • 相关阅读:
    Flink核心技术
    Flink学习问题和答案
    Spark知识点总结
    Scala知识点总结
    Spark测试题
    Hadoop概念试题
    IntelliJ IDEA 2019 快捷键终极大全
    Linux入门
    javaSe知识点总结
    Data
  • 原文地址:https://www.cnblogs.com/LightyaChoo/p/12775763.html
Copyright © 2011-2022 走看看