取出字符串中最长回文子串

Posted 现刻

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了取出字符串中最长回文子串相关的知识,希望对你有一定的参考价值。

给你一个字符串 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\')

以上是关于取出字符串中最长回文子串的主要内容,如果未能解决你的问题,请参考以下文章

最长回文子字符串的长度

最长回文字串暴力

华为机试题 HJ85最长回文子串

华为机试题 HJ85最长回文子串

最长回文子串

Leetcode 5. 最长回文子串