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

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

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

笨办法,就是将两个字符串进行遍历,然后截取比对,如果截取的字符串都包含的话就取最大的那个,然后输出就可以了

let line
let arr = [];
while(line = readline()){
    arr.push(line);
    if(arr.length == 2){
        let arr1 = arr[0].split('');
        let arr2 = arr[1].split('');
        let shortArr = arr1.length > arr2.length ? arr2 : arr1
        let longArr = arr1.length > arr2.length ? arr1 : arr2
        let maxStr;
        for(let i = 0;i<longArr.length;i++){
            for(let j = shortArr.length - i;j > 0;j--){
                let tempStr = shortArr.join('').substr(i,j);
                if(shortArr.join('').includes(tempStr) && longArr.join('').includes(tempStr)){
                    if(!maxStr || shortArr.join('').substr(i,j).length > maxStr.length){
                        maxStr = shortArr.join('').substr(i,j);
                    }
                }
                
            }
        }
            console.log(maxStr)
             arr = []
    }
 
}
全部评论

相关推荐

02-21 14:14
已编辑
上海大学 Java
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务