【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;
}
posted @ 2021-02-24 01:25  Hyx'  阅读(32)  评论(0)    收藏  举报