-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path0005_Longest_Palindromic_Substring.py
More file actions
49 lines (45 loc) · 1.39 KB
/
0005_Longest_Palindromic_Substring.py
File metadata and controls
49 lines (45 loc) · 1.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
class Solution:
def longestPalindrome(self, s: str) -> str:
sol = ""
max_len = 0
# odd
index = 0
while index < len(s):
left = index - 1
right = index + 1
while left >= 0 and right < len(s):
if not s[left] == s[right]:
diff = right - left - 1
if diff > max_len:
sol = s[left + 1:right]
max_len = diff
break
else:
left -= 1
right += 1
diff = right - left - 1
if diff > max_len:
sol = s[left + 1:right]
max_len = diff
index += 1
# even
index = 0
while index < len(s):
left = index
right = index + 1
while left >= 0 and right < len(s):
if not s[left] == s[right]:
diff = right - left - 1
if diff > max_len:
sol = s[left + 1:right]
max_len = diff
break
else:
left -= 1
right += 1
diff = right - left - 1
if diff > max_len:
sol = s[left + 1:right]
max_len = diff
index += 1
return sol