classSolution{public:
string minWindow(string s, string t){int m = s.size(), n = t.size();if(n > m)return"";
unordered_map<int,int> a;int cnt =0;for(int i =0; i < n;++i){if(a.count(t[i])==0)++cnt;// 记录t串中有多少个不同的字母--a[t[i]];}int l =0, r =0;int idx =-1, len = m+1;while(r < m){if(++a[s[r++]]==0)--cnt;while(l < r and cnt ==0){if(r - l < len) idx = l, len = r - l;if(a[s[l++]]--==0)++cnt;}}return idx ==-1?"": s.substr(idx, len);}};