字符串消除连续出现3次及以上的字符
2014-08-14 15:31
204 查看
字符串消除连续出现3次及以上的字符,如11222212,则输出2
要注意的是:s.erase(i,1)之后,s的长度发生变化;且i指向元素删除后,i不需要再加1,因为后面的自动前移了,继续处理即可。
要注意的是: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"); }
相关文章推荐
- 转换字符串格式为:源字符串里的字符+该字符连续出现的个数
- 递归算法查找字符串中相同字符连续出现的最大次数
- 转换字符串格式为原来字符串里的字符+该字符连续出现的个数
- 求一段字符串中连续出现次数最多的单个字符和分解字符串
- 实现简易字符串压缩算法:一个长度最大为128的字符串, 由字母a-z或者A-Z组成,将其中连续出现2次以上(含2次)的字母转换为字母和出现次数,以达到压缩目的
- 【程序员面试宝典】-转换字符串格式为字符+连续出现的次数
- 如:1122333变为122233,将字符串转换为字符+字符连续出现的次数
- [2013百度软件研发笔试题] 求字符串中连续出现相同字符的最大值
- 对输入字符串进行压缩,输入"aaabcccdde",输出"3ab3c2de",即对连续出现的字符进行压缩。
- 转换字符串格式为原来的字符+该字符连续出现的个数
- 转换字符串格式为原来字符串里的字符加上该字符连续出现的个数
- 给定一个字符串,里面会有连续重复出现的字符,比如aabbbcdde,要求把连续重复的字符只保留一个,比如上面的字符串处理之后就变成了abcde。
- 面试宝典:转换字符串格式为原来字符串里的字符+该字符连续出现的个数
- 2013百度笔试 求字符串中连续出现相同字符的最大值
- (1461)转换字符串为字符+字符连续出现的次数
- 用递归实现查找字符串中相同字符连续出现次数的最大值
- 用递归实现查找字符串中相同字符连续出现次数的最大值
- 转换字符串格式为原来字符串里的字符+该字符连续出现的个数
- C++字符串分割,分割符号可为任意字符,且可连续出现多个
- 对输入字符串进行压缩,输入"aaabcccdde",输出"3ab3c2de",即对连续出现的字符进行压缩