zoukankan      html  css  js  c++  java
  • 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).

    For example,
    S = "ADOBECODEBANC"
    T = "ABC"

    Minimum window is "BANC".

    Note:
    If there is no such window in S that covers all characters in T, return the empty string "".

    If there are multiple such windows, you are guaranteed that there will always be only one unique minimum window in S.

    class Solution {
    public:
        string minWindow(string s, string t) {
            unordered_map<char,int> m;
            for(char c : t){
                m[c]++;
            }
            int sL = s.length();
            int counter = t.length();
            int start = 0,end = 0;
            int minStart = 0,minLen = INT_MAX;
            
            while(end < sL){
                if(m[s[end]]>0){
                    counter--;
                }
                m[s[end]]--;
                end++;
                while(counter == 0){
                    if(end-start < minLen){
                        minStart = start;
                        minLen = end-start;
                    }
                    m[s[start]]++;
                    if(m[s[start++]] > 0){
                        counter++;
                    }
                }
            }
            if(minLen < INT_MAX)
                return s.substr(minStart,minLen);
            else
                return "";
            
        }
    };
  • 相关阅读:
    1.2 流程控制
    SpringMVC-第一个MVC程序的搭建需要
    用户与权限
    自定义函数和存储过程
    触发器
    事务
    约束
    视图和索引
    函数二
    函数一
  • 原文地址:https://www.cnblogs.com/wxquare/p/5878117.html
Copyright © 2011-2022 走看看