PTA文字列減算(20分)

無限の光を放つのは人間の心であり、無限の闇を生み出すのも人間の心であり、光と闇が絡み合って戦うこの世界は、懐かしくて無力な世界です。

2つの文字列S 1とS 2が与えられた場合、S = S 1 −S 2は、S 1からS 2のすべての文字を取得した後の残りの文字列として定義されます。あなたの仕事は、与えられた文字列に対してS 1 −S 2を計算することです。しかし、それを速く行うのはそれほど簡単ではないかもしれません 

入力仕様:

各入力ファイルには1つのテストケースが含まれています。各ケースは、それぞれS 1とS 2を与える2つの線で構成されます。両方のストリングのストリングの長さは10 4以下です。すべての文字が目に見えるASCIIコードと空白であることは保証されており、改行文字は文字列の終わりを示します。

出力仕様:

各テストケースについて、S 1 −S 2を1行で印刷します。

入力例:

They are students.
aeiou

出力例:

Thy r stdnts.
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <vector>
#include <ctime>
#include <cctype>
#include <bitset>
#include <utility>
#include <sstream>
#include <complex>
#include <iomanip>
#include<climits>//INT_MAX
#define PP pair<ll,int>
#define inf 0x3f3f3f3f
#define llinf 0x3f3f3f3f3f3f3f3fll
#define dinf 1000000000000.0
#define PI 3.1415926
typedef long long ll;
using namespace std;
int const mod=1e9+7;
const int maxn=1e5+10;
string s1, s2;
map<char, int> mp;
int main(){
	getline(cin, s1, '\n');
	getline(cin, s2, '\n');
	for(int i=0;i<s2.length();i++)
		mp[s2[i]]++;
	for(int i=0;i<s1.length();i++)
		if(mp[s1[i]]==0)
			printf("%c", s1[i]);
	return 0;
}

 

おすすめ

転載: blog.csdn.net/weixin_44170305/article/details/108354557