题解 | #最小覆盖子串#

最小覆盖子串

https://www.nowcoder.com/practice/c466d480d20c4c7c9d322d12ca7955ac

/*
	HW双指针3 最小覆盖子串

*/
class Solution {
public:
    unordered_map<char,int>hash;
    bool check()
    {
        for(auto it=hash.begin();it!=hash.end();it++){
            if(it->second<=0)return false;
        }
        return true;
    }

    string minWindow(string S, string T) {
        int lens=S.length(),lent=T.length();
        for(int i=0;i<lent;i++){
            if(hash.count(T[i]))hash[T[i]]--;
            else hash[T[i]]=0;
        }
        int lo=0,hi=0;
        int cnt=lens+1;
        int l=-1,r=-1;
        for(;hi<lens;hi++){
            char ch=S[hi];
            if(hash.count(ch))hash[ch]++;
            while(check()){
                if(cnt>hi-lo+1){
                    cnt=hi-lo+1;
                    l=lo;
                    r=hi;
                }
                char cl=S[lo];
                if(hash.count(cl)){
                    hash[cl]--;
                }
                lo++;
            }
        }
        if(l==-1)return "";
        return string(S.begin()+l,S.begin()+r+1);
    }
};
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-07 13:47
机械打工仔:你自己匿名可以,这么好的公司就别给它匿名了
点赞 评论 收藏
分享
05-20 13:59
门头沟学院 Java
米黑子米黑子:你这个成绩不争取下保研?
点赞 评论 收藏
分享
06-26 22:20
门头沟学院 Java
码农索隆:让你把简历发给她,她说一些套话,然后让你加一个人,说这个人给你改简历,然后开始卖课
我的求职精神状态
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-08 12:10
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务