码迷,mamicode.com
首页 > Windows程序 > 详细

76. Minimum Window Substring

时间:2018-10-08 00:48:25      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:include   \n   clu   min   hashmap   ==   substring   code   printf   

最小窗口字串

参考 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<<"\n";
    }
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\n",cnt);
            print_dict(letterCnt);
            printf("%c\n",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

标签:include   \n   clu   min   hashmap   ==   substring   code   printf   

原文地址:https://www.cnblogs.com/learning-c/p/9752091.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!