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.length
  • n == t.length
  • 1 <= m, n <= 105
  • s and t consist of uppercase and lowercase English letters.