题目描述:
删除公共字符
输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。
例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”。
#include <string>
#include <queue>
#include <iostream>
using namespace std;
int main()
{
string s1;
string s2;
string s;
getline(cin, s1);
getline(cin, s2);
int len1 = s1.size();
int len2 = s2.size();
for(int i = 0; i < len1; i++)
{
bool flag = true;
for(int j = 0; j < len2; j++)
{
if(s1[i] == s2[j])
flag = false;
}
if(flag == true)
s += s1[i];
}
cout << s << endl;
return 0;
}
#include <iostream>
#include <string>
#include <queue>
using namespace std;
int main()
{
string s1;
string s2;
string s;
getline(cin, s1);
getline(cin, s2);
int len1 = s1.size();
int len2 = s2.size();
queue<int> que;
for(int i = 0; i < len1; i++)
{
for(int j = 0; j < len2; j++)
{
if(s1[i] == s2[j])
que.push(i);
}
}
for(int i = 0; i < len1; i++)
{
if(que.size() != 0 && i == que.front())
{
que.pop();
continue;
}
s += s1[i];
}
cout << s << endl;
return 0;
}
#include <iostream>
#include <string>
#include <set>
using namespace std;
int main()
{
string s1;
string s2;
string s;
getline(cin, s1);
getline(cin, s2);
int len1 = s1.size();
int len2 = s2.size();
set<char> m;
for(int i = 0; i < len2; i++)
m.insert(s2[i]);
for(int i = 0; i < len1; i++)
{
if(m.find(s1[i]) == m.end())
s += s1[i];
}
cout << s << endl;
return 0;
}