首页 > 代码库 > Minimum Window Substring
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 ""; }};
Minimum Window Substring
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。