var minWindow = function(s, t) {
let l=0;
let r=0;
let need=new Map();
for(let i of t){
need.set(i,need.get(i)? need.get(i)+1:1);
}
let length=s.length;
let nodeType=need.size;
let res='';
while(r<length){
let n=s[r];
if(need.has(n)){
need.set(n,need.get(n)-1);
if(need.get(n)===0){nodeType--;}
}
while(nodeType==0){
const newRes=s.substring(l,r+1);
if(!res||newRes.length<res.length){res=newRes}
let a=s[l];
if(need.has(a)){
need.set(a,need.get(a)+1);
if(need.get(a)===1) nodeType++;
}
l++;
}
r++;
}
return res
};