class Solution {
public:
string minWindow(string s, string t) {
if (s.size()<t.size())
return "";
int count=0,left=0,right=0,Left=0,min=INT_MAX;
unordered_map<char,int>hash;
for(auto c:t)
hash[c]++;
for(;right<s.size();right++)
{
if(hash.find(s[right])!=hash.end())//存在该字符
{
if(hash[s[right]]>0)
count++;
hash[s[right]]--;
}
while(count==t.size())
{
if(min>(right-left+1))//对最小值进行修改
{
min=right-left+1;
Left=left;
}
if(hash.find(s[left])!=hash.end())//对左边值进行收缩
{
if(hash[s[left]]>=0)
count--;
hash[s[left]]++;
}
left++;
}
}
return min==INT_MAX ? "" :s.substr(Left,min);
}
};
76. 最小覆盖子串
最新推荐文章于 2020-08-02 17:28:37 发布