char *removechar(char *dst,const char *pattern) { if(dst==NULL|| pattern==NULL) return NULL; if(*pattern==0) return dst; bool hashmap[256]={false}; while(*pattern!=0) hashmap[*pattern++]=true; char *p=dst,*q=dst; while(*q!=0) { if(hashmap[*q]==false) { *p=*q; ++p; } ++q; } *p=0; return dst; }
奉上解释
利用线性hash制作bitmap,使复杂度将为o(M+N),不是传统的o(M*N)
字符串的比较是基础。