Leetcode 76. 最小覆盖子串 滑动窗口+哈希表
原题链接:添加链接描述
class Solution {
public:string minWindow(string s, string t) {if (s.size()<t.size()) return "";unordered_map<char,int> count;int all=0;for(int i=0;i<t.size();i++){if(count[t[i]]==0) all++;count[t[i]]+=1;}int len = INT_MAX;int l = 0, r =0, cnt=0,pos=0;unordered_map<char,int> window;while(r<s.size()){if(count[s[r]]){window[s[r]]++;if(count[s[r]]==window[s[r]]) cnt++;}while(cnt==all){if(r-l+1<len){len =r-l+1;pos=l;}if(count[s[l]]){if(count[s[l]]==window[s[l]]) cnt--;window[s[l]]--;}l++;}r++;}string res ="";if(len!=INT_MAX) {res = s.substr(pos,len);}return res;}
};