File tree Expand file tree Collapse file tree 1 file changed +26
-0
lines changed
DP/Longest Palindrome Substring Expand file tree Collapse file tree 1 file changed +26
-0
lines changed Original file line number Diff line number Diff line change
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 ()
You can’t perform that action at this time.
0 commit comments