题解 | #最小覆盖子串#
最小覆盖子串
https://www.nowcoder.com/practice/c466d480d20c4c7c9d322d12ca7955ac
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param S string字符串 # @param T string字符串 # @return string字符串 # class Solution: def minWindow(self , S: str, T: str) -> str: # write code here n,m=len(S),len(T) if n<m: return '' dic,left,right={},0,0 res,resn='',n+1 for s in T: if s in dic: dic[s]-=1 else: dic[s]=-1 for i in range(n): right=i if S[i] in dic: dic[S[i]]+=1 while (self.check(dic)): if (right-left+1)<resn : resn=right-left+1 res=S[left:right+1] if S[left] in dic: dic[S[left]]-=1 left+=1 return res def check(self,hash): for key in hash: if hash[key]<0: return False return True