https://leetcode-cn.com/probl...解题思路l和r分别是当前目标字符串的最左下标和最右下标。r继续前进。l当保证当前字母不需要保留时向前移动(不需要参考:目标字符串中没有这个字母或者这个字母的当前个数已经超过要求),这是一个贪心策略cnt计算还需要多少个目标字母。n是已经满足的cnt中的字母个数。ans是最终的答案代码类解决方案:defminWindow(self,s:str,t:str)->str:importcollectionscnt=collections.Counter(t)ans=''n=0#目前我对t很满意l=0forr,chinenumerate(s)中的字母数:如果ch不在cnt中:继续cnt[ch]-=1ifcnt[ch]==0:n+=1whiles[l]notincntorcnt[s[l]]<0:#检查当前l处的字母是否必须,如果l不是必须的,添加ifs[l]incnt:cnt[s[l]]+=1l+=1ifn==len(cnt):ifnotansorlen(ans)>r-l+1:ans=s[l:r+1]returnans欢迎来到我的博客:https://codeplot.top/我的博客问题类别:https://codeplot.top/categories/%E5%88%B7%E9%A2%98/
