class Solution {
public:
string minWindow(string S, string T) {
if(T.empty() || S.size()<T.size()) return "";
string min_window=S;
bool has_answer=false;
int s_hash[256],t_hash[256];
memset(s_hash,0,256*sizeof(int)),memset(t_hash,0,256*sizeof(int));
for(int i=0;i<T.size();i++)
{
t_hash[T[i]]++;
}
int head=0,tail=0,count=0;
for(;tail<S.size();tail++)
{
if(s_hash[S[tail]]<t_hash[S[tail]])
{
count++;
}
s_hash[S[tail]]++;
if(t_hash[S[tail]]!=0 && count==T.size())
{
has_answer=true;
while(t_hash[S[head]]==0 || s_hash[S[head]]>t_hash[S[head]])
{
s_hash[S[head]]--;
head++;
}
string a_value(S.begin()+head,S.begin()+tail+1);
min_window=a_value.size()<min_window.size()?a_value:min_window;
}
}
return has_answer?min_window:"";
}
};
Minimum Window Substring
最新推荐文章于 2021-12-02 12:51:45 发布