Given two strings A and B and two integers b and m. The task is to find that if it is possible to form string B from A such that A is divided into groups of b characters except the last group which will have characters ≤ b and you are allowed to pick atmost m characters from each group, and also order of characters in B must be same as that of A. If it is possible then print Yes else print No.
Input: A = abcbbcdefxyz, B = acdxyz, b = 5, m = 2
Groups can be “abcbb”, “cdefx” and “yz”
Now “acdxyz” can be used to pick “ac” and “dx” can be picked from “cdefx”.
Finally, “yz” if the last group.
Input: A = abcbbcdefxyz, B = baz, b = 3, m = 2
Approach: The idea is to use binary search. Iterate through string A and store the frequency of each of the characters of A in vector S. Now iterate through B and if the current character is not in the vector then print No since its not possible to form string B using A. Else, check the first occurrence of current character starting from the index of the last chosen character low, which denotes starting position in string A from where we want to match characters of string B. Keep track of number of characters stored in each group. If it exceeds, the given limit of characters in current block, we update the pointer low to the next block.
Below is the implementation of the above approach:
Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.
- Check if a string is a scrambled form of another string
- Construct a binary string following the given constraints
- Generate a string whose all K-size substrings can be concatenated to form the given string
- Check if N can be converted to the form K power K by the given operation
- Form lexicographically smallest string with minimum replacements having equal number of 0s, 1s and 2s
- Check if a string contains a palindromic sub-string of even length
- Divide array into two parts with equal sum according to the given constraints
- Check if the given string is K-periodic
- Check if a string is suffix of another
- Check if given string contains all the digits
- Check if one string can be converted to another
- Find minimum time to finish all jobs with given constraints
- Check given string is oddly palindrome or not | Set 2
- Check whether the given decoded string is divisible by 6
- Check if the given string is the same as its reflection in a mirror
- Check given string is oddly palindrome or not
- Check if a binary string has two consecutive occurrences of one everywhere
- Check if given string can be formed by two other strings or their permutations
- Minimum time required to transport all the boxes from source to the destination under the given constraints
- Check if a string can be split into two strings with same number of K-frequent characters
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. 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.