fork(1) download
  1. s = 'AXXXA'
  2. n = len(s)
  3. dp = [[('', 0, 0) for i in range(n + 1)] for j in range(n + 1)]
  4.  
  5. for i in range(1, n + 1):
  6. for j in range(1, n + 1):
  7. last = dp[i - 1][j - 1]
  8. if last[2] != i != j != last[1] and s[i - 1] == s[j - 1]:
  9. dp[i][j] = last[0] + s[i - 1], i, j
  10. else:
  11. dp[i][j] = max(dp[i - 1][j], dp[i][j - 1], key=lambda t: t[0])
  12.  
  13. print(dp[n][n][0])
Success #stdin #stdout 0.04s 9668KB
stdin
Standard input is empty
stdout
X