关于算法-数据结构:PAT甲级1050-String-Subtraction

题目粗心:

给出2个字符串,在第一个字符串中删除第二个字符串中呈现过的所有字符并且输入

算法思路:

s1和s2别离记录第一和第二个字符串,应用table记录所有在s2中呈现过的字符,在遍历s1的过程中,只有以后字符在table中没有被记录就输入即可。

提交后果:

AC代码:
#include <unordered_map>
#include <iostream>

using namespace std;

int main()
{
    string s1,s2;
    getline(cin,s1);
    getline(cin,s2);
    unordered_map<char,bool> table;
    for (int i = 0; i < s2.size(); ++i) {
        table[s2[i]] = true;
    }
    for (int j = 0; j < s1.size(); ++j) {
        if(!table[s1[j]]){
            printf("%c",s1[j]);
        }
    }
    return 0;
}

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理