题解 | #最小覆盖子串#
最小覆盖子串
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
