76. Minimum Window Substring
Hard47.0% acceptance2,075,960 / 4,418,611 submissions
Asked by 34 companies
Topics
Given two strings s and t of lengths m and n respectively, return the minimum window substring of s such that every character in t (including duplicates) is included in the window. If there is no such substring, return the empty string "".
The testcases will be generated such that the answer is unique.
Example 1:
Input: s = "ADOBECODEBANC", t = "ABC" Output: "BANC" Explanation: The minimum window substring "BANC" includes 'A', 'B', and 'C' from string t.
Example 2:
Input: s = "a", t = "a" Output: "a" Explanation: The entire string s is the minimum window.
Example 3:
Input: s = "a", t = "aa" Output: "" Explanation: Both 'a's from t must be included in the window. Since the largest window of s only has one 'a', return empty string.
Constraints:
m == s.lengthn == t.length1 <= m, n <= 105sandtconsist of uppercase and lowercase English letters.
Follow up: Could you find an algorithm that runs in O(m + n) time?
Hints
Hint 1
Use two pointers to create a window of letters in s, which would have all the characters from t.
Hint 2
Expand the right pointer until all the characters of t are covered.
Hint 3
Once all the characters are covered, move the left pointer and ensure that all the characters are still covered to minimize the subarray size.
Hint 4
Continue expanding the right and left pointers until you reach the end of s.
Similar Questions
Substring with Concatenation of All WordsHardMinimum Size Subarray SumMediumSliding Window MaximumHardPermutation in StringMediumSmallest Range Covering Elements from K ListsHardMinimum Window SubsequenceHardCount Substrings That Can Be Rearranged to Contain a String IIHardCount Substrings That Can Be Rearranged to Contain a String IMedium