首页 > 试题广场 >

最长公共连续子串

[编程题]最长公共连续子串
  • 热度指数:7108 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
给出两个字符串(可能包含空格),找出其中最长的公共连续子串,输出其长度。

输入描述:
输入为两行字符串(可能包含空格),长度均小于等于50.


输出描述:
输出为一个整数,表示最长公共连续子串的长度。
示例1

输入

abcde
abgde

输出

2
    var str1 = readline();
    var str2 = readline();
    var arr = [];
    for (var i = 0; i < str1.length; i++) {
        arr[i] = [];
        for (var j = 0; j < str2.length; j++) {
            arr[[i]][j] = 0;
        }
    }
    var max = 0;
    for(var i=0;i<str1.length;i++){
        for (var j = 0; j < str2.length; j++) {
            if (str1[i] == str2[j]) {
                if(i==0 || j==0){
                    arr[i][j] = 1;
                }else{
                    arr[i][j] = arr[i-1][j-1] + 1;
                }
            }
            if(arr[i][j]>max){
                max = arr[i][j];
            }
        }
    }
    print(max);

发表于 2018-10-09 13:03:19 回复(0)
let str1 = new String(readline());
let str2 = new String(readline());
let count = 0;
//print(str1);
//print(str2);
for(let i = 0; i < str1.length; i++){
    for(let j = str1.length; j > i; j--){
        let strc = str1.slice(i, j);
        //print(strc);
        if(str2.indexOf(strc)!=-1){
            let len = strc.length;
            if(len > count){
                count = len;
            }
            break;
        }
    }
}
print(count);

发表于 2018-08-30 21:34:00 回复(0)