首页 > 代码库 > [leetcode] 76 Minimum Window Substring
[leetcode] 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).
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 emtpy string""
.
If there are multiple such windows, you are guaranteed that there will always be only one unique minimum window in S.
代码:
string minWindow(string S, string T) { //C++ int size_s = S.size(); int size_t = T.size(); if(size_t == 0||size_s==0||size_s<size_t) return ""; string result; map<char,int> dic; map<char,int> window; int validNum = 0,min = INT_MAX; for(int i=0; i<size_t; i++) dic[T[i]]++; for(int fast=0,slow=0; fast<size_s;fast++){ char ch = S[fast]; if(dic.count(ch)!=0){ window[ch]++; if(window[ch] <= dic[ch]) validNum++; } if(validNum == size_t){ while(dic.count(S[slow])==0||dic[S[slow]]<window[S[slow]]){ if(window.count(S[slow])!=0) window[S[slow]]--; slow++; } if(fast-slow+1 < min){ min = fast-slow+1; result = S.substr(slow,min); } } } return result; }
[leetcode] 76 Minimum Window Substring
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。