Skip to content

Commit 536237d

Browse files
committed
solve 3
1 parent af1b199 commit 536237d

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
'''
2+
시간 복잡도: O(n^2)
3+
공간 복잡도: O(1)
4+
'''
5+
6+
class Solution:
7+
def longestPalindrome(self, s: str) -> str:
8+
start, max_length = 0, 1 # Track longest palindrome
9+
10+
def expand_around_center(left: int, right: int) -> int:
11+
while left >= 0 and right < len(s) and s[left] == s[right]:
12+
left -= 1
13+
right += 1
14+
# Return length of palindrome
15+
return right - left - 1
16+
17+
# Check each position as potential center
18+
for i in range(len(s)):
19+
# Check for odd length palindromes (single character center)
20+
len1 = expand_around_center(i, i)
21+
# Check for even length palindromes (between two characters)
22+
len2 = expand_around_center(i, i + 1)
23+
24+
curr_max = max(len1, len2)
25+
26+
# Update start and max_length if current palindrome is longer
27+
if curr_max > max_length:
28+
max_length = curr_max
29+
start = i - (curr_max - 1) // 2
30+
31+
return s[start:start + max_length]

0 commit comments

Comments
 (0)