LeetCode 76.Minimum Window Substring【C++】

题目描述

76. 最小覆盖子串

AC代码

class Solution {
public:
    string minWindow(string s, string t) {
        unordered_map<char,int> hash;
        for(auto c:t) hash[c]++;
        int cnt=hash.size();

        string res;
        for(int i=0,j=0,c=0;i<s.size();i++){
            if(hash[s[i]]==1) c++;
            hash[s[i]]--;
            while(hash[s[j]]<0) hash[s[j++]]++;
            if(c==cnt){
                if(res.empty()||res.size()>i-j+1)
                    res=s.substr(j,i-j+1);
            }
        }
        return res;
    }
};

版权声明:本文为weixin_40992982原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。