PAT A1050 String Subtraction (20 分)
Given two strings S1 and S2 , S=S1 −S2 is defined to be the remaining string after taking all the characters in S2 from S1 . Your task is simply to calculate S1 −S2 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 S1 and S2 , respectively. The string lengths of both strings are no more than 104 . 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 S1 −S2 in one line.
Sample Input:
They are students.
aeiou
Sample Output:
Thy r stdnts.
以下是AC的代码:
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
const int maxn = 10010;
char str1[maxn],str2[maxn];
bool hashsub[256];
int main(void){
memset(hashsub,false,sizeof(hashsub));
cin.getline(str1,maxn);
cin.getline(str2,maxn);
int len1=strlen(str1);
int len2=strlen(str2);
for(int i=0;i<len2;i++){
char s=str2[i];
hashsub[s]=true;//减去;
}
for(int i=0;i<len1;i++){
char c=str1[i];
if(hashsub[c] == false) printf("%c",c);
}
return 0;
}