所有可能的中间元素,用于字符串的最大奇数长度回文子序列

时间:2017-09-01 05:17:46

标签: algorithm dynamic-programming

如何为字符串的最长回文子序列找到所有可能的中间元素。 考虑到最长的回文子序列的长度是奇数。

1 个答案:

答案 0 :(得分:0)

您可以使用Longest Palindromic Subsequence的逻辑并根据您的情况进行扩展。

DP(i,j,k)表示最大答案,j为中间元素,当前索引为i和k。现在

if(i==j && j==k)
    return 1;
if(S[i] == S[j])
    DP(i,j,k) = 1 + DP(i+1, j, k-1)
DP(i,j,k) = max(DP(i,j,k), max(DP(i+1,j,k), DP(i,j,k-1)))

为i,j,k的所有可能值计算它,最大值将是你的答案。时间复杂度 O(n ^ 3)