滑动窗口问题,注意题干:返回 s 中涵盖 t 所有字符的最小子串
class Solution:
def minWindow(self, s: str, t: str) -> str:
l,r,ans,cur_len = 0,0,(float(‘inf‘),0,0),0
s_d,t_d = {},{}
for i in t: t_d[i] = t_d.get(i,0)+1
while r<len(s):
s_d[s[r]] = s_d.get(s[r],0) + 1
if s_d[s[r]] == t_d.get(s[r],0): cur_len+=1
while l<=r and len(t_d)==cur_len:
if r-l+1 < ans[0]: ans = (r-l+1,l,r+1)
s_d[s[l]]-=1
if s_d[s[l]]<t_d.get(s[l],0): cur_len-=1
l+=1
r+=1
return "" if ans[0]==float("inf") else s[ans[1]:ans[2]]
原文:https://www.cnblogs.com/wangshujaun/p/14044179.html