题解 | #查找两个字符串a,b中的最长公共子串#

查找两个字符串a,b中的最长公共子串

http://www.nowcoder.com/practice/181a1a71c7574266ad07f9739f791506

let arr = []
let n = 2;
while(line = readline()) {
    arr.push(line);
}

for (let s= 0; s< arr.length/n; s++) {
    let items = arr.slice(n*s, n*(s+1));
    let [str1 , str2] = items;
    let short = str1.length > str2.length ? str2 : str1;
    let long = short == str2 ? str1 : str2;
    let maxLen = 0;
    let maxStr;
    for (let i=0; i< short.length; i++) {
        for (let j=0; j< long.length; j++) {
            let a = i;
            let b = j;
            let length = 0;
            let end;
            while(a < short.length && b < long.length && short[a] == long[b]) {
                a++;
                b++;
                length++;
                end = a;
            }
            if (length > maxLen) {
                maxLen = length;
                maxStr = short.substring(i, end);
            }
        }
    }
    print(maxStr)
}

全部评论

相关推荐

11-06 10:58
已编辑
门头沟学院 嵌入式工程师
双非25想找富婆不想打工:哦,这该死的伦敦腔,我敢打赌,你简直是个天才,如果我有offer的话,我一定用offer狠狠的打在你的脸上
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务