Minimum Window Substring
2020-12-13 02:08
private:
int hashs[256];
int hasht[256];
inline bool check()
{
for(int i=0;i256;i++)
if(hashs[i]
return true;
}
public:
string minWindow(string S, string T)
{
for(int i=0;i256;i++)
{
hashs[i]=0;
hasht[i]=0;
}
for(int i=0;i
int minl=-1;
int minr=S.length();
for(int i=0;i
if(!check()) return "";
int l=0;
int r=0;
for(int i=0;i256;i++) hashs[i]=0;
hashs[S[0]]=1;
while(true)
{
if(check())
{
if(r-l
minl=l;
minr=r;
if(minr-minl+1==T.length()) break;
}
hashs[S[l]]--;
l++;
}
else
{
r++;
if(r==S.length()) break;
hashs[S[r]]++;
}
}
if(minl==-1) return "";
else return S.substr(minl,minr-minl+1);
}
};
下一篇:Java基础(一)