PAT Advanced 1050 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 1. 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.

 

这题考了差集,用unordered_map进行判别会节省一点时间

#include <iostream>
#include <unordered_map>
using namespace std;
unordered_map<char, bool> m;
int main() {
    string str, pattern, res;
    getline(cin, str);
    getline(cin, pattern);
    for(int i = 0; i < pattern.length(); i++) m[pattern[i]] = 1;
    for(int i = 0; i < str.length(); i++)
        if(!m[str[i]]) res += str[i];
    cout << res;
    system("pause");
    return 0;
}
posted @ 2020-01-21 11:36  SteveYu  阅读(133)  评论(0编辑  收藏  举报