【1050 20 hash】 String Subtraction
传送门
题意
给定两个字符串 \(s_{1},s_{2}\) ,删除 \(s_{1}\) 中的出现的所有 \(s_{2}\) 字符,输出
数据范围
\(|s_{1}|,|s_{2}|\leq 10^{4}\)
题解
- 利用
map记录所有 \(s_{2}\) 出现的字符即可 - 删除的时候注意指针的变化
Code
#include<bits/stdc++.h>
using namespace std;
map<char,bool>mp;
int main(){
string a,b;
getline(cin,a);
getline(cin,b);
for(int i=0;i<b.size();i++) mp[b[i]]=1;
for(int i=0;i<a.size();i++){
if(mp[a[i]]) a.erase(i,1),i--;
}
cout<<a;
}

浙公网安备 33010602011771号