class Solution {
public:
string minWindow(string s, string t) {
vector<int>mp(128,0);
for(int i=0;i<t.size();i++)mp[t[i]]++;
int counter=0,start=0,end=0,minstart=0,wind=INT_MAX;
while(end<s.size())
{
if(mp[s[end]]>0)counter++;//必须写>0,不写是判断是否为0
mp[s[end]]--;
end++;
while(counter==t.size())
{
if(wind>end-start)wind=end-start,minstart=start;
mp[s[start]]++;
if(mp[s[start]]>0)counter--;//必须写>0,不写是判断是否为0
start++;
}
}
return wind==INT_MAX?"":s.substr(minstart,wind);
}
};
网友评论