PAT (Advanced Level) Practice 1050 String Subtraction(20分)【哈希】

Given two strings S 1 S_1 and S 2 S_2 , S = S 1 S 2 S=S_1−S_2 is defined to be the remaining string after taking all the characters in S 2 S_2 from S 1 S_1 . Your task is simply to calculate S 1 S 2 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 S_1 and S 2 S_2 , respectively. The string lengths of both strings are no more than 1 0 4 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 S_1−S_2 in one line.

Sample Input:

They are students.
aeiou

Sample Output:

Thy r stdnts.

题意

读入两个字符串,输出第一个字符串,但是略过在第二个字符串中出现过的字符。

思路

使用set。

代码

#include <iostream>
#include <set>
#include <string>

using namespace std;

int main() {
    string s1, s2;
    getline(cin, s1);
    getline(cin, s2);

    set<char> st;

    for (auto &i : s2)
        st.insert(i);

    for (auto &i : s1)
        if (!st.count(i))
            cout << i;
}
发布了184 篇原创文章 · 获赞 19 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/Exupery_/article/details/104095006