您的位置:首页 > 职场人生

亚马逊面试:输出字符串中所有最长的无重复字符的子字符串

2012-10-07 19:08 483 查看
//输出字符串中所有最长的无重复字符的子字符串
void allMaxChildNoRepeatCharacter(const string& str)
{
string s=str;
vector<int> ia(2);
int len=0;//记录当前最长的无重复字符的子字符串
for(int start=0,end=1; end<s.length(); end++)
{
for(int i=start; i<end; i++)
{
if(s[i]==s[end])
{
start=i+1;//下次开始遍历位置
break;
}
}
if(end-start > len)//
{
ia.erase(ia.begin(),ia.end());
ia.push_back(start);
ia.push_back(end);
len=end-start;
}else if(end-start == len)
{
ia.push_back(start);
ia.push_back(end);
len=end-start;
}else{
}
}
for(int i=0; i<ia.size()-1; i=i+2 )
{
for(int j=ia[i]; j<=ia[i+1]; j++)
cout<<str[j];
cout <<endl;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐