首页 > 其他分享 >难度中等-5. 最长回文子串

难度中等-5. 最长回文子串

时间:2022-10-01 14:46:23浏览次数:49  
标签:子串 中等 len maxLen maxI let 回文

以前也碰到过类似的题,用的是字符相加后基类排序的方法,现在用暴力破解法发现简单多了

循环i从左边,j从右边开始,不停的判断i到j是否回文字符,如果是,那么当前i位置就是最长的

循环i,找出 s 中最长的回文子串

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

 

示例 1:

输入:s = "babad"
输出:"bab"
解释:"aba" 同样是符合题意的答案。
示例 2:

输入:s = "cbbd"
输出:"bb"
 

提示:

1 <= s.length <= 1000
s 仅由数字和英文字母组成

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/longest-palindromic-substring
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

/**
 * @param {string} s
 * @return {string}
 */
var longestPalindrome = function(s) {
    let maxLen=1;
    let maxI=0;
    for(let i=0;i<s.length-1;i++){
        //从右边开始找
        for(let j=s.length-1;j>i;j--){
            if(s[i]===s[j]){
                const len=j-i+1;
                let d=(len>>1)-1;
               
                while(d>0&&s[i+d]===s[j-d]){
                    d--
                }
                //如果是回文字符
                if(d===0){
                    if(len>maxLen){
                        maxLen=len
                        maxI=i;
                    }
                    break;
                }
            }
        }
    }
    console.log(maxI,maxLen)
    return s.substr(maxI,maxLen)
};

 

标签:子串,中等,len,maxLen,maxI,let,回文
From: https://www.cnblogs.com/caoke/p/16747178.html

相关文章