mirror of
https://github.com/prdlk/leetcode.git
synced 2026-11-02 13:12:44 +00:00
46 lines
1.3 KiB
Plaintext
46 lines
1.3 KiB
Plaintext
---
|
|||
|
|
title: '76. Minimum Window Substring'
|
||
|
|
description: 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 ""
|
||
|
|
icon: dot
|
||
|
|
topics:
|
||
|
|
- { name: "Hash Table", slug: "hash-table" }
|
||
|
|
- { name: "String", slug: "string" }
|
||
|
|
- { name: "Sliding Window", slug: "sliding-window" }
|
||
|
|
issue: "https://github.com/prdlk/leetcode/issues/57"
|
||
|
|
sidebar:
|
||
|
|
label: 'Minimum Window Substring'
|
||
|
|
badge: 'Hard'
|
||
|
|
---
|
||
|
|
|
||
|
|
::::warning
|
||
|
|
Could you find an algorithm that runs in O(m + n) time?
|
||
|
|
::::
|
||
|
|
|
||
|
|
### 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 <= 10^5`
|
||
|
|
- `s` and `t` consist of uppercase and lowercase English letters.
|
||
|
|
|
||
|
|
## Solution
|
||
|
|
|
||
|
|
```py
|
||
|
|
class Solution:
|
||
|
|
def minWindow(self, s: str, t: str) -> str:
|
||
|
|
```
|