![]() |
VOOZH | about |
Given string str, the task is to count the maximum number of possible operations that can be performed on str. An operation consists of taking a sub-sequence 'gks' from the string and removing it from the string.
Examples:
Input: str = "ggkssk"
Output: 1
Explanation: After 1st operation: str = "gsk"
No further operation can be performed.Input: str = "kgs"
Output: 0
Approach:
- Take three variables g, gk, and gks which will store the occurrence of the sub-sequences 'g', 'gk', and 'gks' respectively.
- Traverse the string character by character:
- If str[i] = 'g' then update g = g + 1.
- If str[i] = 'k' and g > 0 then update g = g - 1 and gk = gk + 1 as previously found 'g' now contributes to the sub-sequence 'gk' along with the current 'k'.
- Similarly, if str[i] = 's' and gk > 0 then update gk = gk - 1 and gks = gks + 1.
- Print the value of gks in the end.
Below is the implementation of the above approach:
1
Time Complexity: O(n)
Auxiliary Space: O(1)