PAT 甲级 1050 String Subtraction(散列表)

1050 String Subtraction (20 分)

Given two strings S​1​​ and S​2​​, S=S​1​​−S​2​​ is defined to be the remaining string after taking all the characters in S​2​​ from S​1​​. Your task is simply to calculate S​1​​−S​2​​ for any given strings. However, it might not be that simple to do it fast.

Input Specification:

Each input file contains one test case. Each case consists of two lines which gives S​1​​ and S​2​​, respectively. The string lengths of both strings are no more than 10​4​​. It is guaranteed that all the characters are visible ASCII codes and white space, and a new line character signals the end of a string.

Output Specification:

For each test case, print S​1​​−S​2​​ in one line.

Sample Input:

They are students.
aeiou

Sample Output:

Thy r stdnts.

Analysis:

if the character exists in s2, mark the vis array 1.then print the s1 if not marked .

Code:

#include<stdio.h>
#include<iostream>
#include<string>
#include<vector>
#include<map>
#include<queue>
#include<set>
#include<math.h>
#include<string.h>
#include<algorithm>
using namespace std;
//20.23
int main()
{
	//freopen(".txt","r",stdin);
	string s1,s2;
	getline(cin,s1);
	getline(cin,s2);
	int vis[200]={0};
	for(int i=0;i<s2.length();i++){
		vis[s2[i]]=1;
	}
	for(int i=0;i<s1.length();i++){
		if(vis[s1[i]]==0)
			cout<<s1[i];
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/zpjlkjxy/article/details/84330850