给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 “” 。
输入:s = "ADOBECODEBANC", t = "ABC" 输出:"BANC"
var minWindow = function(s, t) { if(s.length < t.length) { return ''; } let l = 0; let r = 0; const map = new Map(); for(let k of t) { map.set(k, map.has(k) ? map.get(k) + 1 : 1); } let mapSize = map.size; let res = '' for(let i = 0; i< s.length; i++) { const c = s[r]; if(map.has(c)) { map.set(c, map.get(c) - 1) if(map.get(c) === 0) { mapSize--; } } while(mapSize === 0) { const newRes = s.substring(l, r + 1); if(!res || newRes.length < res.length) { res = newRes; } const c2 = s[l]; if(map.has(c2)){ map.set(c2, map.get(c2) + 1); if(map.get(c2) === 1) { mapSize++; } } l++; } r++; } return res; };