[算法]去掉字符串中连续出现的k个0子串
2016-01-25 17:08
337 查看
题目:
给定一个字符串str和一个整数k,如果str中正好有k个‘0’字符出现时,把k个连续的‘0’字符去除,返回处理后的字符串。举例:
str=”A00B”,k=2,返回“AB”str=”A0000B000”,k=3,返回“A0000B”
思路:
两个变量:1.count表示连续0的个数,初始值为0
2.start表示连续0的起点,初始值为-1
使用字符串中从未出现的字符,这里使用’@‘,目的是最后一步进行正则替换
![](http://images2015.cnblogs.com/blog/886182/201601/886182-20160125170825817-1649864103.png)
程序:
public static String removeKZeros(String str,int k){ if (str == null||k<1) { return str; } char[] chas=str.toCharArray(); int count=0,start=-1; for (int i=0;i!=chas.length;i++){ if (chas[i]=='0'){ count++; start=start==-1?i:start; } else { if (count==k){ while (count--!=0) chas[start++]='@'; } count=0; start=-1; } } if (count==k){ while (count--!=0) chas[start++]='@'; } return String.valueOf(chas).replaceAll("\\@+",""); }
相关文章推荐
- Hbuilder常用快捷键功能.html
- HDU 5611 Baby Ming and phone number
- HDU 5610 Baby Ming and Weight lifting
- cancel cell click highlight
- 山东农业大学/基础训练7
- ionic 进入二级目录以后隐藏底部导航栏(tabs)
- Android中自定义shape
- NSPredicate的用法
- BootStrap学习
- 畅通project(杭电1863)
- js中的闭包
- aircack-ng抓握手包
- Argument list too long......
- 程序员网址大全
- android html 图片处理类--加载富文本工具类
- Android 4.4KK系统关机流程分析
- EditText输入限制小数点后两位
- 使用IE11的F12开发人员工具进行网页前端性能测试
- 产品经理演进漫谈:千万不要以为鼻祖是乔布斯
- Android笔记9