76. Minimum Window Substring

Posted learning-c

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了76. Minimum Window Substring相关的知识,希望对你有一定的参考价值。

最小窗口字串

参考 https://www.cnblogs.com/grandyang/p/4340948.html

#include<iostream>
#include<string>
#include<unordered_map>
using namespace std;
class Solution {
    void print_dict(unordered_map<char,int>& letterCnt){
        for(auto it=letterCnt.begin();it!=letterCnt.end();++it){
            cout<<it->first<<" "<<it->second<<" ";
        }
        cout<<"
";
    }
public:
    string minWindow(string s, string t) {
        string res="";
        unordered_map<char,int> letterCnt;
        int left=0,cnt=0,minLen=INT_MAX;
        for(auto a:t) {
            letterCnt[a]++;
        }
        for(int i=0;i<s.size();++i){
            printf("%d
",cnt);
            print_dict(letterCnt);
            printf("%c
",s[i]);
            if(--letterCnt[s[i]]>=0) cnt++;
            while(cnt==t.size()){

                if(i-left+1<minLen){
                    minLen=i-left+1;
                    res=s.substr(left,minLen);
                }

                if(++letterCnt[s[left]]>0){
                    cnt--;
                }
                left++;
            }
        }
        return res;
    }
};

int main(){
    Solution solution;
    std::cout<<solution.minWindow("ADBANC","ABC");
    return 0;
}

 可以用数组代替hashmap

//unordered_map<char,int> letterCnt;
vector letterCnt(256,0);


以上是关于76. Minimum Window Substring的主要内容,如果未能解决你的问题,请参考以下文章

76. Minimum Window Substring

76. Minimum Window Substring

算法第76题 Minimum Window Substring

java 76. Minimum Window Substring.java

java 76. Minimum Window Substring.java

java 76. Minimum Window Substring.java