公共最长子序列

从末尾向前算

var naiveLCS = function(str1,str2){
    var result = "";
        //相等先退出
    if(str1.split('').length == 0 || str2.split('').length == 0){
        return false;
    }

    if(str1.substr(-1) == str2.substr(-1)){
        result = naiveLCS(str1.slice(0,-1),str2.slice(0,-1))
        if(result)
            result = result + str1.slice(-1);
        else
            result = str1.slice(-1);
        return result;
    }else{
        var tempR1 = naiveLCS(str1.slice(0,-1),str2);
        var tempR2 = naiveLCS(str1,str2.slice(0,-1));
        if(tempR1 && tempR2){
            return tempR1.split('').length > tempR2.split('').length ? tempR1 : tempR2;
        }else{
            return tempR1 ? tempR1 : tempR2;
        }
    }
}

var a = "12de111q";
var b = "w12e444vq";
console.log(naiveLCS(a,b));
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容