Longest Palindromic Substring

LeetCode題目: 5. Longest Palindromic Substring

My solution:

/**
 * @param {string} s
 * @return {string}
 */
let longestPalindrome = s => {
    if(s.length < 2) return s;
    let n = s.length, maxLen = 0, maxLenStartIdx = 0;
    let pointer = (left, right) => {
        while(left >= 0 && right < s.length && s[left] === s[right]){
            left--; right++;    
        }
        if((right - left - 1) > maxLen){
            maxLen = right - left - 1;
            maxLenStartIdx = left + 1;
        }
    };
    for(let i=0; i<n-1 ; i++){
        pointer(i,i);//odd
        pointer(i,i+1);//even
    }
    return s.slice(maxLenStartIdx, maxLenStartIdx+maxLen);
}
profile-image
Hi, 我是 Zeki。目前為一名前端工程師。我相信科技始終來自於人性,是用來幫助人們過上更有品質的生活的,但願也希望如此。