Skip to content

Commit 381f54e

Browse files
committed
solve: longest palindromic substring
1 parent 3fd7e0b commit 381f54e

File tree

1 file changed

+25
-0
lines changed
  • longest-palindromic-substring

1 file changed

+25
-0
lines changed

longest-palindromic-substring/evan.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
class Solution:
2+
def longestPalindrome(self, s: str) -> str:
3+
if not s:
4+
return ""
5+
6+
start, end = 0, 0
7+
8+
def expand_and_get_length(s, left, right):
9+
while left >= 0 and right < len(s) and s[left] == s[right]:
10+
left -= 1
11+
right += 1
12+
13+
return right - left - 1
14+
15+
for i in range(len(s)):
16+
odd_palindrome_length = expand_and_get_length(s, i, i)
17+
even_palindrome_length = expand_and_get_length(s, i, i + 1)
18+
19+
max_len = max(odd_palindrome_length, even_palindrome_length)
20+
21+
if max_len > end - start:
22+
start = i - (max_len - 1) // 2
23+
end = i + max_len // 2
24+
25+
return s[start : end + 1]

0 commit comments

Comments
 (0)