#include <bits/stdc++.h>
using namespace std;
//知识图谱
int main(){
int n;
while(cin>>n){ //输入n的关系对
unordered_map<string,string> hash; //val是父节点
unordered_set<string> instance; //存储instanceof
string s1,s2,s3;
for(int i=0;i<n;i++){
cin>>s1>>s2>>s3;
if(s2=="instanceOf")
instance.insert(s1); //保存子概念
hash[s1]=s3; //保存一一对应的关系
}
string ss;
cin>>ss;
set<string> ret;
for(auto s:instance){
string s1=s;
while(hash.count(s1)){
if(hash[s1]==ss){
ret.insert(s);
break;
}
s1=hash[s1];
}
}
if(ret.size()==0){
cout<<"empty"<<endl;
}else{
int i=0;
for(auto s:ret){
if(i==0) cout<<s;
else cout<<" "<<s;
++i;
}
}
return 0;
}
}
【机考复盘】华为2021.9.1机考复盘第二题
最新推荐文章于 2024-08-28 14:48:07 发布