华为机试09.01 查找知识图谱中的实例知识(C++)

#include <iostream>
#include <map>
#include <string>
#include <vector>
#include <set>
using namespace std;
int main()
{
    int n;
    cin >> n;
    string str1, str2, str3;
    multimap<string, string> sub;
    multimap<string, string> ins;
    for (int i = 0; i < n; i++)
    {
        cin >> str1 >> str2 >> str3;
        if (str2 == "subClassOf")
            sub.insert(pair<string, string>(str3, str1));
        else if (str2 == "instanceOf")
            ins.insert(pair<string,string>(str3,str1));
    }
    string recv;
    cin >> recv;
    set<string> res;
    for (auto i : sub)
    {
        if (i.first == recv)
        {
            for (auto j : ins)
            {
                if (j.first == i.second)
                    res.insert(j.second);
            }
        }
    }
    for (auto i : ins)
    {
        if (i.first == recv)
            res.insert(i.second);
    }
    if (res.empty())
        cout << "empty" << endl;
    for (auto i : res)
    {
        cout << i << " ";
    }
    cout << endl;
}
全部评论
用multimap和map<string, vector<string>>哪个效率高呢
点赞 回复 分享
发布于 2021-09-08 21:22
想问,这道题需要输出子类还有子类的这种情况吗?
点赞 回复 分享
发布于 2021-09-22 11:34

相关推荐

11-24 00:11
已编辑
广东工业大学 算法工程师
避雷深圳&nbsp;&nbsp;yidao,试用期&nbsp;6&nbsp;个月。好嘛,试用期还没结束,就直接告诉你尽快找下一家吧,我谢谢您嘞
牛客75408465号:笑死,直属领导和 hr 口径都没统一,各自说了一些离谱的被裁理由,你们能不能认真一点呀,哈哈哈哈哈😅😅😅
点赞 评论 收藏
分享
字节 飞书绩效团队 (n+2) * 15 + 1k * 12 + 1w
点赞 评论 收藏
分享
走不到的路就这样算了吗:大佬硬气
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-27 10:48
点赞 评论 收藏
分享
评论
3
6
分享
牛客网
牛客企业服务