Skip to content

Commit eb31f57

Browse files
authored
Python code for longest palindrome substring
1 parent 7089e3e commit eb31f57

File tree

1 file changed

+26
-0
lines changed
  • DP/Longest Palindrome Substring

1 file changed

+26
-0
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
def longest_palindrome(text):
2+
3+
length = len(text)
4+
palindromes_lengths = [1] * length
5+
for fgap in range(1, length):
6+
pre = palindromes_lengths[fgap]
7+
for rgap in reversed(range(0, fgap)):
8+
tmp = palindromes_lengths[rgap]
9+
if text[fgap] == text[rgap]:
10+
if rgap + 1 > fgap - 1:
11+
palindromes_lengths[rgap] = 2
12+
else:
13+
palindromes_lengths[rgap] = 2 + pre
14+
else:
15+
palindromes_lengths[rgap] = max(palindromes_lengths[rgap + 1],
16+
palindromes_lengths[rgap])
17+
pre = tmp
18+
return palindromes_lengths[0]
19+
20+
def main():
21+
print(longest_palindrome('bbabcbcab'))
22+
print(longest_palindrome('abbaab'))
23+
print(longest_palindrome('opengenus'))
24+
25+
if __name__ == '__main__':
26+
main()

0 commit comments

Comments
 (0)