给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。

示例 1:

输入: "babad" 输出: "bab" 注意: "aba" 也是一个有效答案。 示例 2:

输入: "cbbd" 输出: "bb"

/**
 * 中心扩散法
 * @param {string} s
 * @return {string}
 */
var longestPalindrome = function(s) {
    if(!s.length){
        return '';
    }
    var strLen = s.length,
        maxStart = 0,
        maxLen = 0;
    for(var i = 0; i < strLen; i++){
        var left = i - 1,
            right = i + 1,
            len = 1;
        while(left >= 0 && s.charAt(left) == s.charAt(i)){
            left--;
            len++;
        }
        while(right < strLen && s.charAt(right) == s.charAt(i)){
            right++;
            len++;
        }
        while(left >= 0 && right < strLen && s.charAt(left) == s.charAt(right)){
            left--;
            right++;
            len += 2;
        }
        if(maxLen < len){
            maxLen = len;
            maxStart = left;
        }
    }
    return s.substring(maxStart + 1, maxStart + maxLen + 1)
};