Input: A = “abcdefababaef”, B = “abf”
Smallest substring of A having B as subsequence is abcdef.
Therefore, the required length is 5.
Input: A = “abcdefababaef”, B = “aef”
Approach: Follow the steps below to solve the problem:
- Store all the indices of the characters of A which are also present in B in a Map CharacterIndex.
- Traverse over all the characters of string B.
- Check if the first character of string B is present in the string A or not:
- If found to be true, then initialize two variables firstVar and lastVar with the index of the first occurrence of B in the string A.
- After updating the values, remove that character from the Map CharacterIndex.
- Otherwise, no further substring is possible.
- For the remaining characters of B, check if the character is present in the string A or not. If found to be true, traverse through all the occurrences of that character in the string A and if the index of that character in the string A exceeds lastVar, then update the lastVar with that index. Otherwise, no further substring is possible.
- If B is completely traversed, update answer with the difference between firstVar and the lastVar.
- Print the final minimized answer.
Below is the implementation of the above approach:
Time Complexity: O(N2)
Auxiliary Space: O(N)
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.
- Find length of longest subsequence of one string which is substring of another string
- Length of the smallest substring which contains all vowels
- Minimize elements to be added to a given array such that it contains another given array as its subsequence
- Minimize elements to be added to a given array such that it contains another given array as its subsequence | Set 2
- Length of the largest substring which have character with frequency greater than or equal to half of the substring
- Lexicographically smallest permutation of a string that contains all substrings of another string
- Lexicographically smallest and largest anagrams of a string containing another string as its substring
- Length of longest substring to be deleted to make a string equal to another string
- Smallest string which not a subsequence of the given string
- Lexicographically smallest permutation of a string that can be reduced to length K by removing K-length prefixes from palindromic substrings of length 2K
- Minimum K such that every substring of length atleast K contains a character c
- Maximum length prefix of one string that occurs as subsequence in another
- Minimum length of substring whose rotation generates a palindromic substring
- Check if the given string is shuffled substring of another string
- Check if a String contains Anagrams of length K which does not contain the character X
- Minimum substring flips required to convert given binary string to another
- Smallest non-zero substring which has any permutation divisible by 2^K
- Find if a given string can be represented from a substring by iterating the substring “n” times
- Partition given string in such manner that i'th substring is sum of (i-1)'th and (i-2)'th substring
- Construct a string of length L such that each substring of length X has exactly Y distinct letters
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.
Improved By : SURENDRA_GANGWAR