过滤字符串

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

posted @ 2012-12-09 11:20  Tiu.G  阅读(138)  评论(0编辑  收藏  举报