您的位置:首页 > 其它

删除字符串中特定字符

2013-09-20 12:02 267 查看
删除字符串中的“b”和“ac”,需要满足如下的条件:字符串只能遍历一次;不能够使用额外的空间。例如:acbac ==> "";aaac ==> aa;ababac ==> aa;bbbbd ==> d;aaccac==>"";abcac==>"";aaaccc==>"";aaabccc==>""。

void fun(char *a)
{
if (a == NULL)
{
return;
}

char *q = a;
char *p = a;
while (*p != '\0')
{
if (*p == 'b')
{
char *left = p-1;
char *right = p+1;
while ((left >= a) && (*left == 'a') && (*right == 'c'))
{
p++;
q--;
left--;
right++;
}
p++;
}
else if (*p == 'a' && *(p+1) == 'c')
{
char *left = p-1;
char *right = p+2;
while ((left >= a) && (*left == 'a') && (*right == 'c'))
{
p++;
q--;
left--;
right++;
}
p++;
p++;
}
else
{
*(q++) = *(p++);
}
}
*q = *p;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: