/**
* @param {string} s
* @param {string} t
* @return {string}
*/
var minWindow = function(s, t) {
let need={};
let window={};
for(let a of t){
need[a]=(need[a]||0)+1;
}
//左右指针
let left=0;
let right=0;
let valid=0;
let start=0;
let len=Number.MAX_VALUE;
while(right<s.length){
let c=s[right];
right++;
if(need[c]){
window[c]=(window[c]||0)+1;
if(window[c]==need[c]){
valid++;
}
}
while(valid==Object.keys(need).length){
if(right-left<len){
start=left;
len=right-left;
}
let d=s[left];
left++;
if(need[d]){
if(window[d]==need[d]){
valid--;
}
window[d]--;
}
}
}
return len ==Number.MAX_VALUE?"":s.substr(start,len);
};
【leetcode】最小覆盖子串
最新推荐文章于 2024-10-04 20:45:38 发布
本文介绍了一个名为`minWindow`的JavaScript函数,它利用滑动窗口技术在给定字符串`s`中查找满足特定字符`t`出现次数相等的最小子串。该算法通过维护左右指针和窗口字典实现高效求解。
摘要由CSDN通过智能技术生成