PAT 1093 字符串A+B 分数:15 知识点:哈希

47 阅读1分钟

1093 字符串A+B - PAT (Basic Level) Practice (中文) (pintia.cn)

set

如果set里面没有s1的元素就把s1的元素加入到set里面,这样就对s1进行了去重操作,然后S里面如果没有s2的元素就把s2的元素加入到set里面,这样s1和s2就没有重复元素了。

#include<bits/stdc++.h>
using namespace std;
int main()
{
    string s1, s2, s3;
    getline(cin, s1);
    getline(cin, s2);
    set<char>S;

    for(int i=0;i<s1.size();i++)
    {
        if(!S.count(s1[i]))
           
        {
            S.insert(s1[i]);
        s3+=s1[i];
        }
    }

    for(int i=0;i<s2.size();i++)
    {
        if(!S.count(s2[i]))
           
        {
            S.insert(s2[i]);
        s3+=s2[i];
        }
    }

    cout<<s3;

    return 0;
}

image.png

map

#include<bits/stdc++.h>
using namespace std;
int main()
{
    string s1, s2, s3;
    getline(cin, s1);
    getline(cin, s2);

    map<char,int>mp;
for(int i=0;i<s1.size();i++) if(!mp[s1[i]]) cout<<s1[i],mp[s1[i]]=1;

    for(int i=0;i<s2.size();i++)if(!mp[s2[i]]) cout<<s2[i],mp[s2[i]]=1;


    return 0;
}

image.png