您的位置:首页 > 其它

字符串消除连续出现3次及以上的字符

2014-08-14 15:31 204 查看
字符串消除连续出现3次及以上的字符,如11222212,则输出2

要注意的是:s.erase(i,1)之后,s的长度发生变化;且i指向元素删除后,i不需要再加1,因为后面的自动前移了,继续处理即可。

#include <iostream>
#include <string>
using namespace std;

void del(string &s)
{
int i=0,j=0;
while(i<s.size())
{
j=i;
while(j<s.size() && s[j]==s[i])
{
j++;
}
if(j-i>=3)
{
s.erase(i,j-i);//消除重复的
i=i-2;//回退2个,如1122221,1222211
if(i<0)
i=0;
}
else
i++;
}
}
void main()
{
string s;
cin>>s;
del(s);
cout<<s<<endl;
system("pause");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐