题目:1065 单身狗 - PAT (Basic Level) Practice (中文) (pintia.cn)
思想
把夫妻装入到 夫妻表(map)里面,然后把参加宴会的人装到哈希表里面,如果宴会里的人在 夫妻表里 找不到,说明就是单身狗,把单身狗加到 单身里表(vector)里面,升序输出
js
#include<bits/stdc++.h>
using namespace std;
map<string,string>mp;
vector<string>ans;
map<string,int>haxi;
string a[10005];
int main()
{
int n;cin>>n;
for(int i=0;i<n;i++)
{
string a,b;cin>>a>>b;
mp[a]=b,mp[b]=a;
}
int m;cin>>m;
for(int i=0;i<m;i++)cin>>a[i],haxi[a[i]]=1;
for(int i=0;i<m;i++)
{
if(!haxi[mp[a[i]]])ans.push_back(a[i]);
}
sort(ans.begin(),ans.end());
cout<<ans.size()<<endl;
for(int i=0;i<ans.size();i++)
{
if(i)cout<<" "; //如果i不为收首就打印空格
cout<<ans[i];
}
return 0;
}