分析
经典动态规划问题“最长回文子串(Longest Palindromic Subsequence)”的变形。
动态规划
#!/usr/bin/python
s = raw_input()
n = len(s)
dp = [[0 for i in xrange(n)] for j in xrange(n)]
for i in xrange(n):
dp[i][i] = 1
for col in xrange(1, n):
for row in xrange(col - 1, -1 , -1):
if s[row] == s[col]:
dp[row][col] = 2
if row + 1 <= col - 1:
dp[row][col] += dp[row + 1][col - 1]
else:
dp[row][col] = max(dp[row][col - 1], dp[row + 1][col])
print max([dp[0][i] * dp[i+1][n-1] for i in xrange(n - 1)])

本文介绍了一种经典的动态规划问题——最长回文子串的变形问题,并提供了一个Python实现示例。通过动态规划的方法求解给定字符串中特定形式的最大乘积。
3233

被折叠的 条评论
为什么被折叠?



