class Solution {
public:
string minWindow(string s, string t) {
string res = "";
unordered_map<char,int> letterCnt;
for(char c: t) letterCnt[c]++;
int left=0, minLen = INT_MAX, cnt=0;
for(int i=0;i<s.size();i++){
if(--letterCnt[s[i]]>=0) cnt++;
while(cnt==t.size()){
if(minLen>i-left+1){
minLen = i-left+1;
res = s.substr(left, minLen);
}
if(++letterCnt[s[left++]]>0) cnt--;
}
}
return res;
}
};