Given a string containing only two characters i.e. R and K (like RRKRRKKKKK). The task is to find the maximum value of N for a subsequence possible of the form R—N times and then K—N times (i.e. of the form R^N K^N).
Note: String of k should be started after the string of R i.e. first k that would be considered for ‘K’ string must occur after the last R of the ‘R’ string in the given string. Also, the length of the resulting subsequence will be 2*N.
If we take R’s at indexes 0, 1, 2, 4, 5 and K’s at indexes 6, 7, 10, 11, 12
then we get a maximum subsequence of the form R^N K^N, where N = 5.
If we take R at index 4( or 5 or 6 or 7) and K at index 8
then we get the desired subsequence with N = 1.
- Calculate the number of R’s before a K .
- Calculate the number of K’s after a K, including that K.
- Store them in a table with a number of R’s in table[x] and a number of K’s in table[x].
- Minimum of the two gives the value of n for each K and we will the return the maximum n.
Below is the implementation of the above approach:
Time Complexity: O(n) where ln is the length of the substring.
- Maximum Sum Subsequence of length k
- Maximum Bitwise AND value of subsequence of length K
- Find the Increasing subsequence of length three with maximum product
- Maximum length prefix of one string that occurs as subsequence in another
- Maximum length subsequence with difference between adjacent elements as either 0 or 1 | Set 2
- Minimum length of the sub-string whose characters can be used to form a palindrome of length K
- Longest subsequence of the form 0*1*0* in a binary string
- Repeated subsequence of length 2 or more
- Subsequence X of length K such that gcd(X, X) + (X, X) + ... is maximized
- Length of Longest Balanced Subsequence
- Count subsequence of length three in a given string
- Find length of longest Fibonacci like subsequence
- Length of longest common subsequence containing vowels
- Length of longest strict bitonic subsequence
- Number of balanced bracket subsequence of length 2 and 4
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.