题目:
只去掉正好出现k个‘0’的子串。
举例:
String s1="A00B"; k=2; return AB.
String s2="A0000B000"; k=3; return A0000B.
借用StringBuilder。sb.append的时间在s.charAt(i)不是‘0’的时候,那么如果s以‘0’结尾,可能会出现最后一组连续的'0'的个数不是k而没有加上得情况,所以遍历完成后,再检查一下count是否等于k。
public String removeZeros(String s,int k)
{
StringBuilder sb=new StringBuilder();
int start=-1;
int count=0;
for(int i=0;i<s.length();i++)
{
if(s.charAt(i) == '0')
{
start=start == -1?i:start;
count++;
}else
{
if(count!=k)
{
while(count !=0)
{
sb.append('0');
count--;
}
}
sb.append(s.charAt(i));
count=0;
start=-1;
}
}
if(count!=k)
{
while(count !=0)
{
sb.append('0');
count--;
}
}
return sb.toString();
}