过滤字符串

请设计一个算法过滤掉字符串中的某个字母(可能多次出现),比如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)

原文地址:https://www.cnblogs.com/guotao/p/2809807.html