[算法]去掉字符串中连续出现的k个0子串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[算法]去掉字符串中连续出现的k个0子串相关的知识,希望对你有一定的参考价值。
题目:
给定一个字符串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
使用字符串中从未出现的字符,这里使用’@‘,目的是最后一步进行正则替换
程序:
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("\\\\@+",""); }
以上是关于[算法]去掉字符串中连续出现的k个0子串的主要内容,如果未能解决你的问题,请参考以下文章