63.在字符串中删除特定的字符。题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。
例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”。
string firstStr,secondStr;int m = firstStr.size();int n = secondStr.size();
char occurred[256];memset(occurred,0,256);
//遍历secondStr中的每个字符,occurred记录哪个字符出现过foreach(char c in secondStr){ occurred[c] = 1; }
char * res = new char[m + 1];memset(res,0,m + 1);//遍历firstStr的每个字符,没在occurred中出现的,放到res中。int i =0;foreach(char c in firstStr){ if (occurred[c] == 0) res[i++] = c;}时间复杂度O(m + n)
把要删除的字符second遍历一次,记录,存储在一个数组A中然后,再遍历 first,把没在A中出现的 字符(或记录)留下来,再保存
相当于 剔除掉要删除的字符,把不要删除的字符,就留下来保存