去除字符

来源:互联网 发布:床上用品多久清洗 知乎 编辑:程序博客网 时间:2024/04/28 21:16

题目:

两个字符串A、B,从A中剔除存在于B中的字符。比如A=“hello world”,B="er",那么剔除之后A变为"hllowold"。空间复杂度要求是O(1),时间复杂度越优越好。


简单方法:

void squeeze2(char s1[], char s2[]){  int i, j, k;  int instr2 = 0;  for(i = j = 0; s1[i] != '\0'; i++)  {    instr2 = 0;    for(k = 0; s2[k] != '\0' && !instr2; k++)    {      if(s2[k] == s1[i])      {        instr2 = 1;      }    }     if(!instr2)    {      s1[j++] = s1[i];    }   }  s1[j] = '\0';}

优化:利用位图,hash

待续。。。

0 0
原创粉丝点击