π Leetcode5_palindrome
μ΄κ²λ μμ μ νμλκ±΄λ° νλ©΄μ κΈ°μ΅μ΄ λ¬λ€
κ·Έλμ μ²μμλ κ·Έλ₯ λΈλ£¨νΈ ν¬μ€λ‘ νλ©΄μ μλκ±Έ μμμ§λ§ κ·Έλλ μλν΄λ³Έκ±° κ·Έλλ‘ μλνλ€.
- μ²μ μλ
class Solution: def longestPalindrome(self, s: str) -> str: # palindromic μΈμ§ νμΈνλ ν¨μ def checkpalin(word): if len(word) == 1: return True center_index = len(word) // 2 if len(word) % 2 == 0: if word[:center_index] == ''.join(list(reversed(word[center_index:]))): return True else: if word[:center_index] == ''.join(list(reversed(word[center_index+1:]))): return True return False result = '' for i in range(len(s)): for x in range(len(s), i-1, -1): if checkpalin(s[i:x]): result = max(result, s[i:x], key=lambda x: len(x)) continue return result
νλμ© νμΈνλ©΄μ λ¬Έμμ΄μ λλλ‘ μμ±ν μκ³ λ¦¬μ¦μ΄λ€
μμ μκ°μ΄κ³Όκ° λλ€.
- λ λ²μ§Έ νμ΄ - μ¬λΌμ΄λ© μλμ°
class Solution: def longestPalindrome(self, s: str) -> str: def expand(left, right): while left >= 0 and right < len(s) and s[left] == s[right]: left -= 1 right += 1 return s[left+1:right] if len(s) == 1 or s == s[::-1]: return s result = '' for i in range(len(s) - 1): result = max(result, expand(i, i+1), expand(i, i+2), key=lambda x:len(x)) return result
λ νμ΄μΌνλλ°...
λͺΈμ΄ μμ’μμ κ·Έλ¬μ§ λͺ»νλ€...γ