如何为字符串的最长回文子序列找到所有可能的中间元素。 考虑到最长的回文子序列的长度是奇数。
答案 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)