题目描述
给定两个字符串 S1 和 S2,S=S1−S2 定义为将 S1 中包含的所有在 S2中出现过的字符删除后得到的字符串。
你的任务就是计算 S1−S2。
输入格式
共两行,第一行包含字符串 S1,第二行包含字符串 S2。
输出格式
输出共一行,表示 S1−S2 的结果。
数据范围
两个给定字符串的长度都不超过 104。
输入样例
They are students.
aeiou
输出样例
Thy r stdnts.
题解
#include<iostream>
#include<string>
#include<bits/stdc++.h>
using namespace std;
int main(){
string s,s1,t;
map<char,int> mp;
getline(cin,s);
getline(cin,s1);
int n;
n=s1.size();
for(int i=0;i<n;i++){
mp[s1[i]]++;
}
n=s.size();
for(int i=0;i<n;i++){
if(mp[s[i]]==0)
t=t+s[i];
else
continue;
}
cout<<t;
return 0;
}
这道题用到的知识点有字符串和哈希表,希望对各位有用,谢谢大家。