5.3 去掉字符串中连续出现k个0的子串
来源:互联网 发布:知乎 有趣 编辑:程序博客网 时间:2024/05/16 14:59
【题目】
给定一个字符串str和一个整数k,如果str中正好有连续的k个'0'字符出现时,把k个连续的'0'去掉,返回处理后的字符串。
【举例】
str = "A00B",k = 2,返回"AB";
str = "A0000B000",k = 3,返回"A0000B";
【实现】
#include <iostream>#include <string>using namespace std;int _tmain(int argc, _TCHAR* argv[]){string str;int k;getline(cin, str);cin >> k;if (str == "" || str.size() == 0||k<1){cout << str<< endl;return 0;}int count = 0;string str1;for (int i = 0; i < str.size(); i++){if (str[i] != '0'){if (count != k){for (int j = 0; j < count; j++)str1 += '0';}str1 += str[i];count = 0;}else{count++;}}if (count != k){for (int j = 0; j < count; j++)str1 += '0';}cout << str1 << endl;return 0;}
【知识点】
1、首先在输入检查时忘记了检查输入的k,还有对于输入检查满足时应该返回什么也得记着思考一下,比如本题中如果输入的str是空或者说k小于1,那么就没必要再去‘0’了,所以直接返回str就好。
2、本题也可以在原串的基础上进行去‘0’操作,这样省的在申请一个额外的str用来保存去‘0’之后的串。但是需要注意如果在原串上直接去0,那么当满足去‘0’条件时,应该给str[i]赋值为0,因为在ASCII码表中0表示NULL。
3、做本题就借鉴了5.2中的思想,即去掉连续‘0’的时机放在字符不是‘0’的时候,这样就省了一重循环,而且便于实现。但是采用这种思想需要注意在循环之外还需要再判断下是否存在满足条件的情况。
0 0
- 5.3 去掉字符串中连续出现k个0的子串
- 字符串——去掉字符串中连续出现k个0的子串
- 字符串问题---去掉字符串中连续出现k个0的子串
- 去掉字符串中连续出现的K个0的子串
- 去掉字符串中连续出现k个0的子串
- 去掉字符串中连续出现k个0的子串
- 去掉字符串中首次连续出现k个0的子串。
- 去掉字符串中连续出现k个0的子串
- 经典笔试题——去掉字符串中连续出现K个0的子串
- 去掉字符串中出现k个0的子串
- 去掉字符串中连续出现k个0的字串
- C++实现去掉字符串中连续相同K个0子串
- 去掉字符串当中的连续k个0,Python版
- C++删除字符串中出现的连续的k个0
- 字符串中连续子串出现次数统计,获取连续出现次数最多的子串
- 字符串中连续出现最长子串
- 找出字符串中连续出现次数最多的子串
- 字符串中连续出现次数最多的子串
- [置顶] java Thread Join方法学习(同步)
- Android设计模式-总结+索引
- [置顶] java Cookie操作总结
- [置顶] zookeeper原理学习
- Qt5中qapplication no such file or directory
- 5.3 去掉字符串中连续出现k个0的子串
- [置顶] Hadoop HDFS简介学习
- jq 智能搜索 下拉提示
- springMVC的执行流程
- 特殊变量列表
- [置顶] Hadoop Map-Reduce的过程解析
- [置顶] Hadoop HDFS文件存储特点结构
- [置顶] Hadoop 常见问题分析
- linux下安装nginx教程