본문 바로가기
IT/[Everyday]Coding

the longest palindromic substring

by Jang HyunWoong 2019. 3. 6.

Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.

Example 1:

Input: "babad" Output: "bab" Note: "aba" is also a valid answer.

Example 2:

Input: "cbbd" Output: "bb"

Palindromic 이라는 것은 회기되는 단어를 이야기 한다.

예를들어 "토마토", "스위스" 와 같은 문장이다.

위 문제에서는 가장 긴 회기단어를 추출하라는 것이다.

Python Solution:

class Solution: def longestPalindrome(self, s: str) -> str: result = '' if not s or len(s) == 1: return s for i in range(len(s)): tmp1 = self.helper(s, i, i) result = tmp1 if len(tmp1) > len(result) else result tmp2 = self.helper(s, i, i + 1) result = tmp2 if len(tmp2) > len(result) else result return result def helper(self, s, left, right): while left >= 0 and right < len(s) and s[left] == s[right]: left -= 1 right += 1 return s[(left+1):right]

tmp1과 tmp2를 나누는 이유는 회기문장의 길이가 짝수일 경우를 대비해서 이다.

예를들어 "스위스"와 같은 경우는 tmp1에서 잡히고, "나나"같은 경우는 tmp2에서 잡을 수 있다.


반응형

'IT > [Everyday]Coding' 카테고리의 다른 글

SdkManager (Error) Warning: Could not create settings  (0) 2020.09.11
Number of 1 Bits  (0) 2019.01.24
Hamming Distance  (0) 2019.01.23
Jewels and Stones  (0) 2019.01.22
노트북 밧데리 수명 예측 연습  (0) 2018.02.20