Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

eumjo_o

leetcode0005 - Longest Palindromic Substring / Medium / TypeScript 본문

카테고리 없음

leetcode0005 - Longest Palindromic Substring / Medium / TypeScript

eumjo_o 2023. 3. 31. 20:57

https://leetcode.com/problems/longest-palindromic-substring/

 

Longest Palindromic Substring - LeetCode

Can you solve this real interview question? Longest Palindromic Substring - 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 = "cb

leetcode.com

  • 문자열 탐색 시 0번째 문자부터 마지막 문자까지 순회
  • 해당 문자가 palindrome의 중간에 오는 문자가 됨.
  • 해당 문자를 기준으로 왼쪽 오른쪽으로 -1, +1씩을 하면서 palindrome이 되는 문자열을 탐색
  • 그 중 가장 긴 문자를 찾는다.

Time Complexity O(n^2)

  • for 문 안에 while 문으로 탐색

 

const getThePalindrome = (s: string, left: number, right: number): string => {
    while(left >= 0 && right < s.length && s[left] === s[right]) {
        left -= 1;
        right += 1;
    }

    return s.slice(left+1, right);
}


function longestPalindrome(s: string): string {
    let palindrome = '';

    for(let left = 0; left < s.length; left++) {
        const oddPalindrome = getThePalindrome(s, left, left);
        if(oddPalindrome.length > palindrome.length) {
            palindrome = oddPalindrome;
        }

        const evenPalindrome = getThePalindrome(s, left, left+1);
        if(evenPalindrome.length > palindrome.length) {
            palindrome = evenPalindrome;
        }
    }

    return palindrome;
};