Skip to content

Commit bc175b4

Browse files
Solved LC5_LongestPalindrome
1 parent a35a5c0 commit bc175b4

2 files changed

Lines changed: 21 additions & 7 deletions

File tree

strings/LC125_isPalindrome/main.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@ def isPalindrome(self, s):
55
:rtype: bool
66
"""
77
import re
8-
9-
s = re.sub(r'[\W_]','',s).lower()
10-
8+
9+
s = re.sub(r"[\W_]", "", s).lower()
10+
1111
left = 0
1212
right = len(s) - 1
13-
13+
1414
while left < right:
1515
if s[left] != s[right]:
1616
return False
17-
left = left +1
18-
right = right -1
17+
left = left + 1
18+
right = right - 1
1919
return True

strings/LC5_longestPalindrome/main.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,19 @@
44
# longestPalindrome("abba") --> "abba"
55
# longestPalindrome("a") --> "a"
66

7+
78
class Solution:
8-
def longestPalindrome(self, s):
9+
def retrieve_pal(self, s, left, right):
10+
while left >= 0 and right < len(s) and s[left] == s[right]:
11+
left = left - 1
12+
right = right + 1
13+
return s[left + 1 : right]
14+
15+
def longestPalindrome(self, s):
16+
res = ""
17+
18+
for i in range(len(s)):
19+
current = self.retrieve_pal(s, i - 1, i + 1)
20+
in_between = self.retrieve_pal(s, i, i + 1)
21+
res = max(current, in_between, res, key=len)
22+
return res

0 commit comments

Comments
 (0)