Given a sequence, find the length of the longest palindromic subsequence in it.
As another example, if the given sequence is “BBABCBCAB”, then the output should be 7 as “BABCBAB” is the longest palindromic subseuqnce in it. “BBBBB” and “BBCBB” are also palindromic subsequences of the given sequence, but not the longest ones.
1) Optimal Substructure:
Let X[0..n-1] be the input sequence of length n and L(0, n-1) be the length of the longest palindromic subsequence of X[0..n-1].
If last and first characters of X are same, then L(0, n-1) = L(1, n-2) + 2.
Else L(0, n-1) = MAX (L(1, n-1), L(0, n-2)).
Following is a general recursive solution with all cases handled.
Dynamic Programming Solution
The lnegth of the LPS is 7
Please refer complete article on Longest Palindromic Subsequence | DP-12 for more details!
- Program to remove empty array elements in PHP
- Program to Insert new item in array on any position in PHP
- PHP Program for Naive algorithm for Pattern Searching
- PHP Program for Rabin-Karp Algorithm for Pattern Searching
- PHP Program to print all permutations of a given string
- PHP Program for Median of two sorted arrays of same size
- PHP Program for Subset Sum Problem | DP-25
- PHP Program for Largest Sum Contiguous Subarray
- PHP Program for Minimum number of jumps to reach end
- PHP Program for Cutting a Rod | DP-13
- PHP Program for Egg Dropping Puzzle | DP-11
- PHP Program to Count set bits in an integer
- PHP Program to Find the Number Occurring Odd Number of Times
- PHP Program to Count number of binary strings without consecutive 1's
- PHP Program for Count ways to reach the n\'th stair