Length of longest common subsequence containing vowels Last Updated : 02 May, 2025 Comments Improve Suggest changes Like Article Like Report Given two strings X and Y of length m and n respectively. The problem is to find the length of the longest common subsequence of strings X and Y which contains all vowel characters.Examples: Input : X = "aieef" Y = "klaief"Output : aieInput : X = "geeksforgeeks" Y = "feroeeks"Output : eoeeSource:Paytm Interview Experience ( Backend Developer ). Naive Approach: Generate all subsequences of both given sequences and find the longest matching subsequence which contains all vowel characters. This solution is exponential in term of time complexity.Efficient Approach (Dynamic Programming): This approach is a variation to Longest Common Subsequence | DP-4 problem.The difference in this post is just that the common subsequence characters must all be vowels. Implementation: C++ // C++ implementation to find the length of longest common // subsequence which contains all vowel characters #include <bits/stdc++.h> using namespace std; // function to check whether 'ch' // is a vowel or not bool isVowel(char ch) { if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') return true; return false; } // function to find the length of longest common subsequence // which contains all vowel characters int lcs(char* X, char* Y, int m, int n) { int L[m + 1][n + 1]; int i, j; // Following steps build L[m+1][n+1] in bottom up fashion. Note // that L[i][j] contains length of LCS of X[0..i-1] and Y[0..j-1] for (i = 0; i <= m; i++) { for (j = 0; j <= n; j++) { if (i == 0 || j == 0) L[i][j] = 0; else if ((X[i - 1] == Y[j - 1]) && isVowel(X[i - 1])) L[i][j] = L[i - 1][j - 1] + 1; else L[i][j] = max(L[i - 1][j], L[i][j - 1]); } } // L[m][n] contains length of LCS for X[0..n-1] and Y[0..m-1] // which contains all vowel characters return L[m][n]; } // Driver program to test above int main() { char X[] = "aieef"; char Y[] = "klaief"; int m = strlen(X); int n = strlen(Y); cout << "Length of LCS = " << lcs(X, Y, m, n); return 0; } Java // Java implementation to find the // length of longest common subsequence // which contains all vowel characters class GFG { // function to check whether 'ch' // is a vowel or not static boolean isVowel(char ch) { if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') return true; return false; } // function to find the length of // longest common subsequence which // contains all vowel characters static int lcs(String X, String Y, int m, int n) { int L[][] = new int[m + 1][n + 1]; int i, j; // Following steps build L[m+1][n+1] // in bottom up fashion. Note that // L[i][j] contains length of LCS of // X[0..i-1] and Y[0..j-1] for (i = 0; i <= m; i++) { for (j = 0; j <= n; j++) { if (i == 0 || j == 0) L[i][j] = 0; else if ((X.charAt(i - 1) == Y.charAt(j - 1)) && isVowel(X.charAt(i - 1))) L[i][j] = L[i - 1][j - 1] + 1; else L[i][j] = Math.max(L[i - 1][j], L[i][j - 1]); } } // L[m][n] contains length of LCS // for X[0..n-1] and Y[0..m-1] // which contains all vowel characters return L[m][n]; } // Driver Code public static void main(String[] args) { String X = "aieef"; String Y = "klaief"; int m = X.length(); int n = Y.length(); System.out.println("Length of LCS = " + lcs(X, Y, m, n)); } } // This code is contributed by Bilal Python # Python3 implementation to find the # length of longest common subsequence # which contains all vowel characters # function to check whether 'ch' # is a vowel or not def isVowel(ch): if (ch == 'a' or ch == 'e' or ch == 'i'or ch == 'o' or ch == 'u'): return True return False # function to find the length of longest # common subsequence which contains all # vowel characters def lcs(X, Y, m, n): L = [[0 for i in range(n + 1)] for j in range(m + 1)] i, j = 0, 0 # Following steps build L[m+1][n+1] in # bottom up fashion. Note that L[i][j] # contains length of LCS of X[0..i-1] # and Y[0..j-1] for i in range(m + 1): for j in range(n + 1): if (i == 0 or j == 0): L[i][j] = 0 elif ((X[i - 1] == Y[j - 1]) and isVowel(X[i - 1])): L[i][j] = L[i - 1][j - 1] + 1 else: L[i][j] = max(L[i - 1][j], L[i][j - 1]) # L[m][n] contains length of LCS for # X[0..n-1] and Y[0..m-1] which # contains all vowel characters return L[m][n] # Driver Code X = "aieef" Y = "klaief" m = len(X) n = len(Y) print("Length of LCS =", lcs(X, Y, m, n)) # This code is contributed by Mohit Kumar C# // C# implementation to find the // length of longest common subsequence // which contains all vowel characters using System; class GFG { // function to check whether // 'ch' is a vowel or not static int isVowel(char ch) { if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') return 1; return 0; } // find max value static int max(int a, int b) { return (a > b) ? a : b; } // function to find the length of // longest common subsequence which // contains all vowel characters static int lcs(String X, String Y, int m, int n) { int [,]L = new int[m + 1, n + 1]; int i, j; // Following steps build L[m+1,n+1] // in bottom up fashion. Note that // L[i,j] contains length of LCS of // X[0..i-1] and Y[0..j-1] for (i = 0; i <= m; i++) { for (j = 0; j <= n; j++) { if (i == 0 || j == 0) L[i, j] = 0; else if ((X[i - 1] == Y[j - 1]) && isVowel(X[i - 1]) == 1) L[i, j] = L[i - 1, j - 1] + 1; else L[i, j] = max(L[i - 1, j], L[i, j - 1]); } } // L[m,n] contains length of LCS // for X[0..n-1] and Y[0..m-1] // which contains all vowel characters return L[m, n]; } // Driver Code static public void Main(String []args) { String X = "aieef"; String Y = "klaief"; int m = X.Length; int n = Y.Length; Console.WriteLine("Length of LCS = " + lcs(X, Y, m, n)); } } // This code is contributed by Arnab Kundu JavaScript <script> // Javascript implementation to find the // length of longest common subsequence // which contains all vowel characters // Function to check whether 'ch' // is a vowel or not function isVowel(ch) { if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') return true; return false; } // Function to find the length of // longest common subsequence which // contains all vowel characters function lcs(X, Y, m, n) { let L = new Array(m + 1); let i, j; // Following steps build L[m+1][n+1] // in bottom up fashion. Note that // L[i][j] contains length of LCS of // X[0..i-1] and Y[0..j-1] for(i = 0; i <= m; i++) { L[i] = new Array(n + 1); for(j = 0; j <= n; j++) { if (i == 0 || j == 0) L[i][j] = 0; else if ((X[i - 1] == Y[j - 1]) && isVowel(X[i - 1])) L[i][j] = L[i - 1][j - 1] + 1; else L[i][j] = Math.max(L[i - 1][j], L[i][j - 1]); } } // L[m][n] contains length of LCS // for X[0..n-1] and Y[0..m-1] // which contains all vowel characters return L[m][n]; } // Driver Code let X = "aieef"; let Y = "klaief"; let m = X.length; let n = Y.length; document.write("Length of LCS = " + lcs(X, Y, m, n)); // This code is contributed by avanitrachhadiya2155 </script> PHP <?php // PHP implementation to find the length of // longest common subsequence which contains // all vowel characters // function to check whether 'ch' // is a vowel or not function isVowel($ch) { if ($ch == 'a' || $ch == 'e' || $ch == 'i' || $ch == 'o' || $ch == 'u') return true; return false; } // function to find the length of longest common // subsequence which contains all vowel characters function lcs($X, $Y, $m, $n) { $L = array_fill(0, $m + 1, array_fill(0, $n + 1, NULL)); // Following steps build L[m+1][n+1] in bottom // up fashion. Note that L[i][j] contains length // of LCS of X[0..i-1] and Y[0..j-1] for ($i = 0; $i <= $m; $i++) { for ($j = 0; $j <= $n; $j++) { if ($i == 0 || $j == 0) $L[$i][$j] = 0; else if (($X[$i - 1] == $Y[$j - 1]) && isVowel($X[$i - 1])) $L[$i][$j] = $L[$i - 1][$j - 1] + 1; else $L[$i][$j] = max($L[$i - 1][$j], $L[$i][$j - 1]); } } // L[m][n] contains length of LCS for X[0..n-1] // and Y[0..m-1] which contains all vowel characters return $L[$m][$n]; } // Driver Code $X = "aieef"; $Y = "klaief"; $m = strlen($X); $n = strlen($Y); echo "Length of LCS = " . lcs($X, $Y, $m, $n); // This code is contributed by ita_c ?> OutputLength of LCS = 3Complexity Analysis:Time Complexity:O(m*n). Auxiliary Space: O(m*n).Efficient approach : Space optimizationIn previous approach the current value dp[i][j] is only depend upon the current and previous row values of DP. So to optimize the space complexity we use a single 1D array to store the computations.Implementation: C++ // C++ implementation to find the length of longest common // subsequence which contains all vowel characters #include <bits/stdc++.h> using namespace std; // function to check whether 'ch' // is a vowel or not bool isVowel(char ch) { if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') return true; return false; } // function to find the length of longest common subsequence // which contains all vowel characters int lcs(char* X, char* Y, int m, int n) { // initialize vector dp to store // computations of subproblems vector<int> dp(n + 1, 0); // iterating over subproblems to get the // current value from previous computations for (int i = 1; i <= m; i++) { // to store just previous value int prev = 0; for (int j = 1; j <= n; j++) { // current value int curr = dp[j]; if ((X[i - 1] == Y[j - 1]) && isVowel(X[i - 1])) dp[j] = prev + 1; else dp[j] = max(dp[j], dp[j - 1]); // assigning values to iterate further prev = curr; } } // return answer return dp[n]; } // Driver Code int main() { char X[] = "aieef"; char Y[] = "klaief"; int m = strlen(X); int n = strlen(Y); cout << "Length of LCS = " << lcs(X, Y, m, n); return 0; } Java import java.util.Arrays; public class GFG { // Function to check whether 'ch' is a vowel or not public static boolean isVowel(char ch) { return ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u'; } // Function to find the length of the longest common subsequence // which contains all vowel characters public static int lcs(char[] X, char[] Y, int m, int n) { // Initialize dp array to store computations of subproblems int[] dp = new int[n + 1]; // Iterating over subproblems to get the current value from previous computations for (int i = 1; i <= m; i++) { // To store just the previous value int prev = 0; for (int j = 1; j <= n; j++) { // Current value int curr = dp[j]; if (X[i - 1] == Y[j - 1] && isVowel(X[i - 1])) dp[j] = prev + 1; else dp[j] = Math.max(dp[j], dp[j - 1]); // Assigning values to iterate further prev = curr; } } // Return answer return dp[n]; } // Driver Code public static void main(String[] args) { char[] X = "aieef".toCharArray(); char[] Y = "klaief".toCharArray(); int m = X.length; int n = Y.length; System.out.println("Length of LCS = " + lcs(X, Y, m, n)); } } Python # Function to check whether 'ch' is a vowel or not def isVowel(ch): if ch == 'a' or ch == 'e' or ch == 'i' or ch == 'o' or ch == 'u': return True return False # Function to find the length of the longest common subsequence # which contains all vowel characters def lcs(X, Y, m, n): # Initialize an array dp to store computations of subproblems dp = [0] * (n + 1) # Iterate over subproblems to get the current value from # previous computations for i in range(1, m + 1): # To store the previous value prev = 0 for j in range(1, n + 1): # Current value curr = dp[j] if X[i - 1] == Y[j - 1] and isVowel(X[i - 1]): dp[j] = prev + 1 else: dp[j] = max(dp[j], dp[j - 1]) # Assign values to iterate further prev = curr # Return the answer return dp[n] # Driver code X = "aieef" Y = "klaief" m = len(X) n = len(Y) print("Length of LCS =", lcs(X, Y, m, n)) # THIS CODE IS CONTRIBUTED BY KANCHAN AGARWAL C# using System; public class GFG { // Function to check whether 'ch' is a vowel or not static bool IsVowel(char ch) { if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') return true; return false; } // Function to find the length of longest common subsequence // which contains all vowel characters static int LCSWithVowels(char[] X, char[] Y, int m, int n) { // Initialize an array dp to store computations of subproblems int[] dp = new int[n + 1]; // Iterating over subproblems to get the current value from previous computations for (int i = 1; i <= m; i++) { // To store just the previous value int prev = 0; for (int j = 1; j <= n; j++) { // Current value int curr = dp[j]; if (X[i - 1] == Y[j - 1] && IsVowel(X[i - 1])) dp[j] = prev + 1; else dp[j] = Math.Max(dp[j], dp[j - 1]); // Assigning values to iterate further prev = curr; } } // Return the answer return dp[n]; } // Driver Code static void Main(string[] args) { char[] X = "aieef".ToCharArray(); char[] Y = "klaief".ToCharArray(); int m = X.Length; int n = Y.Length; Console.WriteLine("Length of LCS = " + LCSWithVowels(X, Y, m, n)); } } JavaScript // Javascript implementation to find the length of longest common // subsequence which contains all vowel characters // Function to check whether 'ch' is a vowel or not function isVowel(ch) { if (ch === 'a' || ch === 'e' || ch === 'i' || ch === 'o' || ch === 'u') return true; return false; } // Function to find the length of the longest common subsequence // which contains all vowel characters function lcs(X, Y, m, n) { // Initialize an array dp to store computations of subproblems let dp = new Array(n + 1).fill(0); // Iterate over subproblems to get the current value from // previous computations for (let i = 1; i <= m; i++) { // To store the previous value let prev = 0; for (let j = 1; j <= n; j++) { // Current value let curr = dp[j]; if (X[i - 1] === Y[j - 1] && isVowel(X[i - 1])) dp[j] = prev + 1; else dp[j] = Math.max(dp[j], dp[j - 1]); // Assign values to iterate further prev = curr; } } // Return the answer return dp[n]; } // Driver code let X = "aieef"; let Y = "klaief"; let m = X.length; let n = Y.length; console.log("Length of LCS =", lcs(X, Y, m, n)); // THIS CODE IS CONTRIBUTED BY KANCHAN AGARWAL OutputLength of LCS = 3Time Complexity: O(m*n). Auxiliary Space: O(n). Comment More infoAdvertise with us Next Article Longest Common Subsequence (LCS) by repeatedly swapping characters of a string with characters of another string A ayushjauhari14 Follow Improve Article Tags : Strings Dynamic Programming DSA subsequence LCS vowel-consonant +2 More Practice Tags : Dynamic ProgrammingLCSStrings Similar Reads Longest Common Subsequence (LCS) Given two strings, s1 and s2, the task is to find the length of the Longest Common Subsequence. If there is no common subsequence, return 0. A subsequence is a string generated from the original string by deleting 0 or more characters, without changing the relative order of the remaining characters. 15+ min read Printing Longest Common Subsequence Given two sequences, print the longest subsequence present in both of them. Examples: LCS for input Sequences âABCDGHâ and âAEDFHRâ is âADHâ of length 3. LCS for input Sequences âAGGTABâ and âGXTXAYBâ is âGTABâ of length 4.We have discussed Longest Common Subsequence (LCS) problem in a previous post 15+ min read Longest Common Subsequence | DP using Memoization Given two strings s1 and s2, the task is to find the length of the longest common subsequence present in both of them. Examples: Input: s1 = âABCDGHâ, s2 = âAEDFHRâ Output: 3 LCS for input Sequences âAGGTABâ and âGXTXAYBâ is âGTABâ of length 4. Input: s1 = âstriverâ, s2 = ârajâ Output: 1 The naive s 13 min read Longest Common Increasing Subsequence (LCS + LIS) Given two arrays, a[] and b[], find the length of the longest common increasing subsequence(LCIS). LCIS refers to a subsequence that is present in both arrays and strictly increases.Prerequisites: LCS, LIS.Examples:Input: a[] = [3, 4, 9, 1], b[] = [5, 3, 8, 9, 10, 2, 1]Output: 2Explanation: The long 15+ min read LCS (Longest Common Subsequence) of three strings Given three strings s1, s2 and s3. Your task is to find the longest common sub-sequence in all three given sequences.Note: This problem is simply an extension of LCS.Examples: Input: s1 = "geeks" , s2 = "geeksfor", s3 = "geeksforgeeks"Output : 5Explanation: Longest common subsequence is "geeks" i.e. 15+ min read C++ Program for Longest Common Subsequence LCS Problem Statement: Given two sequences, find the length of longest subsequence present in both of them. A subsequence is a sequence that appears in the same relative order, but not necessarily contiguous. For example, "abc", "abg", "bdf", "aeg", '"acefg", .. etc are subsequences of "abcdefg". So 3 min read Java Program for Longest Common Subsequence LCS Problem Statement: Given two sequences, find the length of longest subsequence present in both of them. A subsequence is a sequence that appears in the same relative order, but not necessarily contiguous. For example, "abc", "abg", "bdf", "aeg", '"acefg", .. etc are subsequences of "abcdefg". So 4 min read Python Program for Longest Common Subsequence LCS Problem Statement: Given two sequences, find the length of longest subsequence present in both of them. A subsequence is a sequence that appears in the same relative order, but not necessarily contiguous. For example, "abc", "abg", "bdf", "aeg", '"acefg", .. etc are subsequences of "abcdefg". So 3 min read Problems on LCSEdit distance and LCS (Longest Common Subsequence)In standard Edit Distance where we are allowed 3 operations, insert, delete, and replace. Consider a variation of edit distance where we are allowed only two operations insert and delete, find edit distance in this variation. Examples: Input : str1 = "cat", st2 = "cut"Output : 2We are allowed to ins 6 min read Length of longest common subsequence containing vowelsGiven two strings X and Y of length m and n respectively. The problem is to find the length of the longest common subsequence of strings X and Y which contains all vowel characters.Examples: Input : X = "aieef" Y = "klaief"Output : aieInput : X = "geeksforgeeks" Y = "feroeeks"Output : eoeeSource:Pay 14 min read Longest Common Subsequence (LCS) by repeatedly swapping characters of a string with characters of another stringGiven two strings A and B of lengths N and M respectively, the task is to find the length of the longest common subsequence that can be two strings if any character from string A can be swapped with any other character from B any number of times. Examples: Input: A = "abdeff", B = "abbet"Output: 4Ex 7 min read Longest Common Subsequence with at most k changes allowedGiven two sequence P and Q of numbers. The task is to find Longest Common Subsequence of two sequences if we are allowed to change at most k element in first sequence to any value. Examples: Input : P = { 8, 3 } Q = { 1, 3 } K = 1 Output : 2 If we change first element of first sequence from 8 to 1, 8 min read Minimum cost to make Longest Common Subsequence of length kGiven two string X, Y and an integer k. Now the task is to convert string X with the minimum cost such that the Longest Common Subsequence of X and Y after conversion is of length k. The cost of conversion is calculated as XOR of old character value and new character value. The character value of 'a 14 min read Longest Common SubstringGiven two strings 's1' and 's2', find the length of the longest common substring. Example: Input: s1 = "GeeksforGeeks", s2 = "GeeksQuiz" Output : 5 Explanation:The longest common substring is "Geeks" and is of length 5.Input: s1 = "abcdxyz", s2 = "xyzabcd" Output : 4Explanation:The longest common su 15+ min read Longest Common Subsequence of two arrays out of which one array consists of distinct elements onlyGiven two arrays firstArr[], consisting of distinct elements only, and secondArr[], the task is to find the length of LCS between these 2 arrays. Examples: Input: firstArr[] = {3, 5, 1, 8}, secondArr[] = {3, 3, 5, 3, 8}Output: 3.Explanation: LCS between these two arrays is {3, 5, 8}. Input : firstAr 7 min read Longest Repeating SubsequenceGiven a string s, the task is to find the length of the longest repeating subsequence, such that the two subsequences don't have the same string character at the same position, i.e. any ith character in the two subsequences shouldn't have the same index in the original string. Examples:Input: s= "ab 15+ min read Longest Common Anagram SubsequenceGiven two strings str1 and str2 of length n1 and n2 respectively. The problem is to find the length of the longest subsequence which is present in both the strings in the form of anagrams. Note: The strings contain only lowercase letters. Examples: Input : str1 = "abdacp", str2 = "ckamb" Output : 3 7 min read Length of Longest Common Subsequence with given sum KGiven two arrays a[] and b[] and an integer K, the task is to find the length of the longest common subsequence such that sum of elements is equal to K. Examples: Input: a[] = { 9, 11, 2, 1, 6, 2, 7}, b[] = {1, 2, 6, 9, 2, 3, 11, 7}, K = 18Output: 3Explanation: Subsequence { 11, 7 } and { 9, 2, 7 } 15+ min read Longest Common Subsequence with no repeating characterGiven two strings s1 and s2, the task is to find the length of the longest common subsequence with no repeating character. Examples: Input: s1= "aabbcc", s2= "aabc"Output: 3Explanation: "aabc" is longest common subsequence but it has two repeating character 'a'.So the required longest common subsequ 10 min read Find the Longest Common Subsequence (LCS) in given K permutationsGiven K permutations of numbers from 1 to N in a 2D array arr[][]. The task is to find the longest common subsequence of these K permutations. Examples: Input: N = 4, K = 3arr[][] = {{1, 4, 2, 3}, {4, 1, 2, 3}, {1, 2, 4, 3}}Output: 3Explanation: Longest common subsequence is {1, 2, 3} which has leng 10 min read Find length of longest subsequence of one string which is substring of another stringGiven two strings X and Y. The task is to find the length of the longest subsequence of string X which is a substring in sequence Y.Examples: Input : X = "ABCD", Y = "BACDBDCD"Output : 3Explanation: "ACD" is longest subsequence of X which is substring of Y.Input : X = "A", Y = "A"Output : 1Perquisit 15+ min read Length of longest common prime subsequence from two given arraysGiven two arrays arr1[] and arr2[] of length N and M respectively, the task is to find the length of the longest common prime subsequence that can be obtained from the two given arrays. Examples: Input: arr1[] = {1, 2, 3, 4, 5, 6, 7, 8, 9}, arr2[] = {2, 5, 6, 3, 7, 9, 8} Output: 4 Explanation: The l 11 min read A Space Optimized Solution of LCSGiven two strings, s1 and s2, the task is to find the length of the Longest Common Subsequence. If there is no common subsequence, return 0.Examples:Input: s1 = âABCDGHâ, s2 = âAEDFHRâOutput: 3Explanation: The longest subsequence present in both strings is "ADH".Input: s1 = âAGGTABâ, s2 = âGXTXAYBâO 13 min read Longest common subarray in the given two arraysGiven two arrays A[] and B[] of N and M integers respectively, the task is to find the maximum length of an equal subarray or the longest common subarray between the two given array. Examples: Input: A[] = {1, 2, 8, 2, 1}, B[] = {8, 2, 1, 4, 7} Output: 3 Explanation: The subarray that is common to b 15+ min read Number of ways to insert a character to increase the LCS by oneGiven two strings A and B. The task is to count the number of ways to insert a character in string A to increase the length of the Longest Common Subsequence between string A and string B by 1. Examples: Input : A = "aa", B = "baaa" Output : 4 The longest common subsequence shared by string A and st 11 min read Longest common subsequence with permutations allowedGiven two strings in lowercase, find the longest string whose permutations are subsequences of given two strings. The output longest string must be sorted. Examples: Input : str1 = "pink", str2 = "kite" Output : "ik" The string "ik" is the longest sorted string whose one permutation "ik" is subseque 7 min read Longest subsequence such that adjacent elements have at least one common digitGiven an array arr[], the task is to find the length of the longest sub-sequence such that adjacent elements of the subsequence have at least one digit in common.Examples: Input: arr[] = [1, 12, 44, 29, 33, 96, 89] Output: 5 Explanation: The longest sub-sequence is [1 12 29 96 89]Input: arr[] = [12, 15+ min read Longest subsequence with different adjacent charactersGiven string str. The task is to find the longest subsequence of str such that all the characters adjacent to each other in the subsequence are different. Examples:Â Â Input: str = "ababa"Â Output: 5Â Explanation:Â "ababa" is the subsequence satisfying the condition Input: str = "xxxxy"Â Output: 2Â Explan 14 min read Longest subsequence such that difference between adjacents is oneGiven an array arr[] of size n, the task is to find the longest subsequence such that the absolute difference between adjacent elements is 1.Examples: Input: arr[] = [10, 9, 4, 5, 4, 8, 6]Output: 3Explanation: The three possible subsequences of length 3 are [10, 9, 8], [4, 5, 4], and [4, 5, 6], wher 15+ min read Longest Uncommon SubsequenceGiven two strings, find the length of longest uncommon subsequence of the two strings. The longest uncommon subsequence is defined as the longest subsequence of one of these strings which is not a subsequence of other strings. Examples: Input : "abcd", "abc"Output : 4The longest subsequence is 4 bec 12 min read LCS formed by consecutive segments of at least length KGiven two strings s1, s2 and K, find the length of the longest subsequence formed by consecutive segments of at least length K. Examples: Input : s1 = aggayxysdfa s2 = aggajxaaasdfa k = 4 Output : 8 Explanation: aggasdfa is the longest subsequence that can be formed by taking consecutive segments, m 9 min read Longest Increasing Subsequence using Longest Common Subsequence AlgorithmGiven an array arr[] of N integers, the task is to find and print the Longest Increasing Subsequence.Examples: Input: arr[] = {12, 34, 1, 5, 40, 80} Output: 4 {12, 34, 40, 80} and {1, 5, 40, 80} are the longest increasing subsequences.Input: arr[] = {10, 22, 9, 33, 21, 50, 41, 60, 80} Output: 6 Prer 12 min read Like