• 76. Minimum Window Substring(js)


    76. Minimum Window Substring

    Given a string S and a string T, find the minimum window in S which will contain all the characters in T in complexity O(n).

    Example:

    Input: S = "ADOBECODEBANC", T = "ABC"
    Output: "BANC"
    题意:找出S中长度最小的子串,满足T中所有字符都在子串中
    代码如下:
    /**
     * @param {string} s
     * @param {string} t
     * @return {string}
     */
    var minWindow = function(s, t) {
        let res="";
        let obj={};
        let left=0,cnt=0,minLen=Infinity;
    //     统计t中的所有字符
        for(let i=0;i<t.length;i++) {
            if(obj.hasOwnProperty(t[i])){
                obj[t[i]]++;
            }else{
                obj[t[i]]=1;
            }
        }
    //     
        for(let i=0;i<s.length;i++){
            if(--obj[s[i]]>=0) ++cnt;
            while(cnt===t.length){
                if(minLen>i-left+1){
                    minLen=i-left+1;
                    res=s.substr(left,minLen);
                }
                if(++obj[s[left]]>0) --cnt;
                ++left;
            }
        }
        return res;
    };



  • 相关阅读:
    Linux下定时删除指定目下n天前的文件
    日期时间格式化
    sed与awk
    Linux守护进程(init.d和xinetd)
    python-Json模块
    python3 urllib模块
    linux 命令 rsync
    Linux下scp的用法
    代码块重定向
    使用exec
  • 原文地址:https://www.cnblogs.com/xingguozhiming/p/10567988.html
Copyright © 2020-2023  润新知