请设计一个算法过滤掉字符串中的某个字母(可能多次出现),比如adecdefg过滤掉e后得到abcdfg。要求时间复杂度为O(n),空间复杂度为O(1)。
char *StrPurify(char *src, char delCh)
{
if(NULL == src) return NULL;
char *p1,*p2;
p1=p2=src;
while(*src){
if(*src != delCh)
*(p1++) = *(src++);
else
src++;
}
*p1 = '\0';
return p2;
}
用一次循环及两个指针,符合时间复杂度O(n),空间复杂度O(1)