一、删除公共字符
题目解析

题目给了两个字符串(其中包含空格),让我们在第一个字符串中删除第二个字符串中的字符。
我们要输出删除后的字符串。
算法思路
这道题,如果直接按照题目中的要求去第一个字符串中删除字符,那还是有一点难度的。
我们通过观察题目可以发现,第二个字符串
str2中的所有字符,我们都要在str1中删除;那我们不妨记录一下
str2中出现的字符,这样再遍历str1,再将str2中出现的字符进行删除;这里还可以进行一下优化:我们知道在一个字符串中删除一个字符,代价是很大的,所以我们重新定义一个字符串
ret,如果str1中字符在str2中没有出现,就放到ret中去。
大致思路就如上所示,现在来梳理一下整个过程
遍历
str2记录其中所有的字符: 首先要记录str2中出现的所有字符,这里定义一个数组即可(大小200左右应该就够用);遍历
str1,将str2中没有出现的字符放到新的字符串中: 这里也可以不定义新的字符串,直接输出字符即可。
代码实现
#include <iostream>
#include <string>
using namespace std;
int main() {
string s, t;
getline(cin, s);
getline(cin, t);
bool hash[200] = {false};
for (auto& e : t) {
hash[e] = true;
}
string ret;
for (auto& e : s) {
(hash[e] == ) ret += e;
}
cout << ret << endl;
;
}





