关于javascript:取出字符串中最长回文子串

9次阅读

共计 517 个字符,预计需要花费 2 分钟才能阅读完成。

给你一个字符串 s,找到 s 中最长的回文子串。

示例 1:

 输出:s = "bsbsd"
输入:"bsb" 或 "sbs"

示例 2:

 输出:s = "cssd"
输入:"ss"

示例 3:

 输出:s = "s"
输入:"s"

示例 4:

 输出:s = "st"
输入:"s"

暴力解题:

首先取出所有的子串,通过双层循环。
而后判断子串是不是回文,并且缓存最长的那个。


var res = ''
var longestPalindrome = function(s) {
    let leng = s.length
    for(var i=0; i<leng; i++) {for(var j=i+1; j<leng; j++) {let str = s.substr(i,j)
            if(isPalindrome(str) && str.length > res.length) {res = str}
            
        }
    }

    return res
};


var isPalindrome = function (str) {
    var left = 0;
    var right = str.length-1;
    while(left < right) {if(str[left] !== str[right]) {return false}
        left++
        right--

    };

    return true
};

longestPalindrome('cbbd')
正文完
 0