Write min_window(s: str, t: str) -> str.
Return the shortest contiguous substring of s that contains every character of t, counting repeats: if t has two xs, the window needs at least two xs. If no such substring exists, return "". If several shortest windows exist, return the leftmost one.
Example: s = "XAYBZCA", t = "ABC" gives "BZCA". s = "aa", t = "aa" gives "aa", but s = "a", t = "aa" gives "". Letters are case-sensitive.
Constraints: 1 <= len(s), len(t) <= 2 * 10^5; ASCII letters.
Aim for O(len(s) + len(t)). Recounting each candidate substring is too slow for the large test.
Show hint
grow a candidate on the right until it covers t, then trim it from the left while it still does. Keep a count of how many characters of t are still missing so each step is O(1).