我的js算法爬坑之旅-最长回文子串

136 阅读1分钟

第十五天:力扣第5题,最长回文子串

地址:leetcode-cn.com/problems/lo…

思路:中心扩展,其实和动态规划挺像的。

var longestPalindrome = function(s) {
    let result = s[0];//设置初值
    let length = 0;
    for (let i = 0; i < s.length; i++) {
        for (let j = 1; j <= 2; j++) { 
            let left = i, right = i + j;//设置左右指针
            while(left >= 0 && right < s.length && s[left] == s[right]) {
                left--, right++; //中心扩展
            };
            length = right - left - 1; 
            if (length > result.length) {
                result = s.substr(left + 1, length);//比较
            }
        }
    }
    return result;
}; 
执行用时:104 ms, 在所有 JavaScript 提交中击败了93.88%的用户
内存消耗:40.2 MB, 在所有 JavaScript 提交中击败了60.89%的用户