Longest Palindromic Substring

Problem Description

Given a string s, return the longest palindromic substring in s.

 

Example 1:

Input: s = "babad"
Output: "bab"
Explanation: "aba" is also a valid answer.

Example 2:

Input: s = "cbbd"
Output: "bb"

 

Constraints:

Solution (JavaScript)

/**
 * @param {string} s
 * @return {string}
 */
var longestPalindrome = function(s) {
    var len = s.length;
    var pal = "";
    
    var offset = 1;
    for(var i = 0; i < len; i++){
        if(i < len - 1 && s.charAt(i) == s.charAt(i+1)){
            while(i-offset >= 0 && i+1+offset < len 
                  && s.charAt(i-offset) ==  s.charAt(i+1+offset)){
                offset ++;
            }
            var palEven = s.substring(i+1-offset, i+1+offset);
            pal = pal.length >= palEven.length ? pal : palEven;
            offset = 1;
        }
        
        while(i-offset >= 0 && i+offset < len 
              && s.charAt(i-offset) ==  s.charAt(i+offset)){
            offset ++;
        }
        var palOdd = s.substring(i+1-offset, i+offset);
        pal = pal.length >= palOdd.length ? pal : palOdd;
        offset = 1;
    }
    
    return pal;
};