Given two strings s1, s2 and K, find the length of the longest subsequence formed by consecutive segments of at least length K.
Input : s1 = aggayxysdfa s2 = aggajxaaasdfa k = 4 Output : 8 Explanation: aggasdfa is the longest subsequence that can be formed by taking consecutive segments, minimum of length 4. Here segments are "agga" and "sdfa" which are of length 4 which is included in making the longest subsequence. Input : s1 = aggasdfa s2 = aggajasdfaxy k = 5 Output : 5 Input: s1 = "aabcaaaa" s2 = "baaabcd" k = 3 Output: 4 Explanation: "aabc" is the longest subsequence that is formed by taking segment of minimum length 3. The segment is of length 4.
Prerequisite : Longest Common Subsequence
Create a LCS array where LCSi, j denotes the length of the longest common subsequence formed by characters of s1 till i and s2 till j having consecutive segments of at least length K. Create a cnt array to count the length of the common segment. cnti, j= cnti-1, j-1+1 when s1[i-1]==s2[j-1]. If characters are not equal then segments are not equal hence mark cnti, j as 0.
When cnti, j>=k, then update the lcs value by adding the value of cnti-a, j-a where a is the length of the segments a<=cnti, j. The answer for the longest subsequence with consecutive segments of at least length k will be stored in lcs[n][m] where n and m are the length of string1 and string2.
- Maximum length of segments of 0's and 1's
- All possible strings of any length that can be formed from a given string
- Length of longest consecutive ones by at most one swap in a Binary String
- Find length of the longest consecutive path from a given starting character
- Maximum length of consecutive 1's in a binary string in Python using Map function
- Maximum number of segments of lengths a, b and c
- Check if a large number can be divided into two or more segments of equal sum
- Count of strings that can be formed using a, b and c under given constraints
- Longest substring of 0s in a string formed by k concatenations
- Count of strings that can be formed from another string using each character at-most once
- Lexicographically largest string formed from the characters in range L and R
- Get K-th letter of the decoded string formed by repeating substrings
- Lexicographically smallest string formed by removing at most one character
- Number of balanced bracket expressions that can be formed from a string
- Check whether a binary string can be formed by concatenating given N numbers sequentially
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.