这他妈才是真真的答案,判断条件应该是 if(window[c]<=target[c]) count++

附上javascript Node 代码

function minWindow( S ,  T ) {  
    if(S==T) return S
    let window = [],target = [] 

    for(let i =0;i<T.length;++i) {
        if(!target[T[i]]) {
            target[T[i]] = 1
        }else{
            target[T[i]]++
        }
    } 

    for(let i =0;i<S.length;++i) {
        window[S[i]] = 0
    } 

    const MAX_LEN = 999999999
    let left =0,right =0;
     let start = 0, minLen = MAX_LEN 
     let count = 0 

     while(right<S.length) {

         let c = S[right] 
         ++right 

         if(target[c]){
             window[c]++ 
             if(window[c]<=target[c]) count++ 
         }

         while(count==T.length) {
            if(right-left<minLen) {
                start = left 
                minLen = right - left 
            }

            c = S[left] 
            ++left 

            if(target[c]) {
                if(window[c]<=target[c]) count-- 
                --window[c]
            }

         }


     }

     return minLen==MAX_LEN ?"": S.substr(start,minLen)

}