题目链接:https://leetcode-cn.com/problems/minimum-window-substring/
题目如下:
class Solution {
public:
string minWindow(string s, string t) {
unordered_map<char,int> hs,ht;
for(auto e:t) ht[e]++;
string result="";
int valid_count=0;
for(int i=0,j=0;i<s.size();i++){
hs[s[i]]++;
if(hs[s[i]]<=ht[s[i]]) valid_count++;//说明是有效字符
while(hs[s[j]]>ht[s[j]]){//说明当前这个是多余的字符,目的,去掉多余的字符
hs[s[j]]--;
j++;
}
if(valid_count==t.size()){//当前是有效窗口
if(i-j+1<result.size()||result=="") result=s.substr(j,i-j+1);
}
}
return result;
}
};