您的位置:首页 > 其它

从一个字符串中删除另一个字符串中出现的字符

2011-11-08 14:02 316 查看
int deleteChars(char *first, char *second){
if(!first||!second) return -1;
bool hashTable[256];
memset(hashTable,0,sizeof(hashTable)*sizeof(bool));

for (int i=0;i<strlen(second);++i)
{
hashTable[(unsigned char)second[i]] = true;
}

char *fast=first;
char *slow=first;

while(*fast){
if(!hashTable[*fast]){
*slow = *fast;
++slow;
}
++fast;
}
*slow = 0;
return 0;
}
hash的思想,只是处理ascii字符,时间复杂度O(N+M),空间复杂度O(1)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: