您的位置:首页 > 其它

76. Minimum Window Substring

2016-03-12 23:58 239 查看
class Solution {
public:
string minWindow(string s, string t) {
map<char,int> tmap,temp;
string result;
int begin,end;
begin=end=0;
int count=t.length();
int min=s.length()+1;
int finalStartPos=0;
if(s.length()<t.length()||s.length()==0||t.length()==0)
return result;
for(int i=0;i<t.length();i++)
tmap[t.at(i)]+=1;
temp=tmap;
while(end<s.length())
{
if(tmap[s.at(end)]>0)
{
temp[s.at(end)]--;
if(temp[s.at(end)]>=0)
count--;
if(count==0)
{
while(true)
{
if(tmap[s[begin]]>0)
{
if(temp[s[begin]]<0)
temp[s[begin]]++;
else
break;
}
begin++;
}
if (min > end - begin+ 1)
{
min =  end - begin+ 1;
finalStartPos = begin;
}
}//if
}//if
end++;
}	//while
if(min==s.length()+1)
return result;
result.assign(s,finalStartPos,min);
return result;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: