76. Minimum Window Substring
solution
class Solution:
def minWindow(self, s: str, t: str) -> str:
t_counter = collections.Counter(t)
s_counter = collections.defaultdict(int)
l = 0
valid_length = 0 # 记录窗口内和target对比的有效长度
res = float('inf')
res_start = -1
for r, char in enumerate(s):
s_counter[char] += 1
if s_counter[char] <= t_counter[char]:
valid_length += 1
while valid_length == len(t):
if r - l + 1 < res:
res = r - l + 1
res_start = l
if s_counter[s[l]] <= t_counter[s[l]]:
valid_length -= 1
s_counter[s[l]] -= 1
l += 1
return "" if res_start < 0 else s[res_start: res_start + res]follow up
Previous424. Longest Repeating Character ReplacementNext3. Longest Substring Without Repeating Characters
Last updated