题目
给定一个字符串str和一个整数k,如果str中正好有连续的k个‘0’字符出现时,把k个连续的‘0’字符去除,返回处理后的字符串。
代码实现
public String removeKZeros(String str, int k) {
if (str == null || k < 1) {
return str;
}
char[] chas = str.toCharArray(); //便于修改String
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++] = 0;
}
}
count = 0;
start = -1;
}
}
//str以字符‘0’结尾时,另外检查一下是否符合删除条件
if (count == k) {
while (count-- != 0) {
chas[start++] = 0;
}
}
return String.valueOf(chas);
}