Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.59 KB | None | 0 0
  1. def solve(S):
  2.     H = dict()
  3.  
  4.     def f(i, j):
  5.         if j <= i:
  6.             return ''
  7.        
  8.         if j - i == 1:
  9.             return S[i]
  10.        
  11.         if (i, j) in H:
  12.             return H[(i, j)]
  13.  
  14.         if S[i] == S[j - 1]:
  15.             H[(i, j)] = S[i] + f(i + 1, j - 1) + S[j - 1]
  16.         else:
  17.             c1 = f(i + 1, j)
  18.             c2 = f(i, j - 1)
  19.             H[(i, j)] = c1 if len(c1) > len(c2) else c2
  20.        
  21.         return H[(i, j)]
  22.        
  23.     return f(0, len(S))
  24.  
  25.  
  26. print(solve('abcba'))
  27. print(solve('ababz'))
  28. print(solve('aca'))
  29. print(solve('abcde'))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement