[Algorithm] 36 week(10.03 ~ 10.09) 3/3

Dev_min·2022년 10월 4일
0

algorithm

목록 보기
119/157

5. Longest Palindromic Substring

var longestPalindrome = function(s) {
    if(s.length < 2 || s === s.split('').reverse().join('')){
        return s;
    }
    
    const expand = (left, right) => {
        while(left >= 0 && right <= s.length && s[left] === s[right - 1]){
            left -= 1;
            right += 1;
        }        
        return s.slice(left + 1, right - 1);
    }
    
    let result = '';

    for(let i = 0; i < s.length - 1; i++){
        const leftString = expand(i, i+1);
        const rightString = expand(i, i+2);

        if(leftString.length > rightString.length){
            result = result.length >= leftString.length ? result : leftString;
        } else {
            result = result.length >= rightString.length ? result : rightString;
        }
    }
    
    return result;
    
};
profile
TIL record

0개의 댓글