Author
Result
0.1115 s
Code
def longest_palindrome(s: str) -> str:
"""
Finds the longest palindromic substring in the given string s.
Uses the Expand Around Center approach.
"""
if not s:
return ""
start = 0
max_len = 1
def expand_around_center(left: int, right: int) -> int:
"""Expands outwards from a center point (or two center points)"""
while left >= 0 and right < len(s) and s[left] == s[right]:
left -= 1
right += 1
return right - left - 1
for i in range(len(s)):
len1 = expand_around_center(i, i)
len2 = expand_around_center(i, i + 1)
current_max_len = max(len1, len2)
if current_max_len > max_len:
max_len = current_max_len
start = i - (max_len - 1) // 2
return s[start:start + max_len]