diff --git a/Lomgest palindromic subsequence b/Lomgest palindromic subsequence new file mode 100644 index 0000000..9a8e678 --- /dev/null +++ b/Lomgest palindromic subsequence @@ -0,0 +1,39 @@ +// C++ program of above approach +#include +using namespace std; + +// A utility function to get max of two integers +int max (int x, int y) { return (x > y)? x : y; } + +// Returns the length of the longest palindromic subsequence in seq +int lps(char *seq, int i, int j) +{ +// Base Case 1: If there is only 1 character +if (i == j) + return 1; + +// Base Case 2: If there are only 2 +// characters and both are same +if (seq[i] == seq[j] && i + 1 == j) + return 2; + +// If the first and last characters match +if (seq[i] == seq[j]) + return lps (seq, i+1, j-1) + 2; + +// If the first and last characters do not match +return max( lps(seq, i, j-1), lps(seq, i+1, j) ); +} + +/* Driver program to test above functions */ +int main() +{ + char seq[] = "GEEKSFORGEEKS"; + int n = strlen(seq); + cout << "The length of the LPS is " + << lps(seq, 0, n-1); + return 0; +} + +// This code is contributed +// by Akanksha Rai