1. 在字符串1中删除字符串2中存在的字符
算法思想:尽量使用O(n)而不是O(n2), 由于数组的下标和数组的值之间已经有一层映射关系了,因此利用它可以减少一次遍历,可以将O(n2)降为O(n).由于对于任意一个数字x, bitmap[x/8] |= x%8都能唯一表示,因此算法是成立的!
1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 5 void delete_str_char (char * main_str, char * sub_str) 6 { 7 if ((main_str == NULL) || (sub_str == NULL)) 8 return; 9 10 char * sub_index = sub_str; 11 char * main_index = main_str; 12 char bitmap[256/8] = {0}; 13 char * str = (char *)malloc(strlen(main_str) + 1); 14 char * index = str; 15 memset (str, 0, strlen(str) + 1); 16 17 while (*sub_index != '