C++实现去掉字符串中连续相同K个0子串
2017-07-11 11:09
567 查看
题目:给定一个字符串和str和一个整数k,把字符串中有连续0的子串去除
#include <iostream> #include <string> using namespace std; string deleteSeriesZero(string str,int k) { if (!str.size()) return NULL; int i = 0; int count ;//统计每一个子串0的个数 int flag =0;//新串的标记位置 while (i<str.size())//循环遍历每一个字符 { count = 0; while (i<str.size() && str[i] != '0')//字符不为0往后移一位 { str[flag++] = str[i++]; } while (i<str.size() && str[i] == '0')//字符为0加1 { count++; i++; } if (count==k)//找到满足子串,flag往后移一位 { str[flag++] = str[i++]; } else//0子串不满足k则往后移动count位并记录每位字符值 { for (int j = i - count; j <=i; j++) { str[flag++] = str[j]; } i++; } } return str.substr(0, flag);//返回所求子串 } int main() { string str1 = "A000B00C00D"; string str2 = "000A00B0000C000"; string result1 = deleteSeriesZero(str1,2); string result2 = deleteSeriesZero(str2, 3); cout << "A000B00C00D的结果是:" << result1 << endl << "000A00B0000C000的结果是:" << result2<< endl;; cin.get(); return 0; }
相关文章推荐
- 去掉字符串中连续出现k个0的子串
- [算法]去掉字符串中连续出现的k个0子串
- 去掉字符串中连续出现的K个0的子串
- 去掉字符串中首次连续出现k个0的子串。
- 去掉字符串中连续出现k个0的子串
- 经典笔试题——去掉字符串中连续出现K个0的子串
- 在字符串中查找连续重复的最长子串的C++实现
- 去掉字符串中连续出现k个0的子串
- 字符串问题---去掉字符串中连续出现k个0的子串
- 5.3 去掉字符串中连续出现k个0的子串
- 去掉字符串末尾连续出现k个0的子串
- 去掉字符串中连续出现k个0的子串
- C++_USACO_求一个字符串的从开头字母开始,直到发现某一不相同字母时,这个子串的长度
- 实现对一个字符串的处理,首先将该字符串首尾的空格去掉,如果字符串中间还有连续空格的话,仅保留一个空格,即允许字符串中间有多个空格,但连续的空格数不可超过一个.
- 【codechef】Devu and binary String(字符串不超过连续k个相同,最少改几个,分类)
- Java String 字符串中的最大相同子串实现
- 请用c++ 实现stl中的string类,实现构造,拷贝构造,析构,赋值,比较,字符串相加,获取长度及子串等功能
- java/C++取两个字符串的最大相同子串
- 用递归实现查找字符串中相同字符连续出现次数的最大值