0928Airbnb笔试100+100

这次笔试一共两道题,lc medium级别,两道题都过了,不过后面看牛友考前收到官方短信说不能切出去本地用IDE,我没收到,然后用IDE做的,大概率被判作弊凉了,真是倒霉gg
1,第一题 100%
大意是在有向无环图中,对每个节点来说,有多少个节点(包括他自己)可以到达他。
------刚开始直接按照拓扑排序,不太对,因为对节点A来说,另一个节点B可能有多条路到达A,所以节点B被重复计算,所以后面稍微改了下,改成能到达A的所有节点放入set中,直接去重,输出大小+1;
写的有点繁琐,按照字符串去处理的,应该有更好的解法。
map<string, vector<string>> m;
map<string, int> indegree;
map<string, set<string>> rr;
set<string> dian;
void helper(vector<string>& lines){ // 处理字符串
    for(auto s : lines){
        string root, tmp;
        int n = (int)s.size();
        int i = 0;
        while(i < n && s[i] != ','){
            root += s[i++];
        }
        dian.insert(root);
        if(i == n){
            continue;
        }
        i++;
        while(i < n){
            if(s[i] == ','){
                 m[root].push_back(tmp); // 图
                 indegree[tmp]++;
                 dian.insert(tmp);
                 tmp = "";
                 i++;
            }else{
                tmp += s[i++];
            }
        }
        m[root].push_back(tmp);
        indegree[tmp]++;
        dian.insert(tmp);
    }
}

vector<string> costsOfNodes(vector<string> lines) {
    if(lines.empty()) return {};
    vector<string> re;
    helper(lines);
    while(true){
        bool f = false;
        for(auto tmp : dian){
            if(indegree[tmp] != 0) continue;
            //rr[tmp].insert(root);
            for(auto ss : m[tmp]){
                indegree[ss]--; // 入度--
                rr[ss].insert(tmp);
                for(auto s : rr[tmp]) rr[ss].insert(s);
                //rr[ss]++;
            }
            indegree[tmp] = -1;
            f = true;
            re.push_back(tmp + "," + to_string(rr[tmp].size() + 1));
        }
        if(f == false) break;
    }
    sort(re.begin(), re.end());
    return re;
}
第二题,100%
lc原题,leetcode166
1,这道题要我们模拟除法,表示出两个数相除的结果,如果有循环,循环节用括号表示,比如1/3=0.(3)
2,注意几点地方,一个是负数,一个是 INT_MIN/-1 可能会溢出
3,剩下的就是模拟除法了,小数点后每一位就是除数不断乘10除以被除数,除数模被除数后,放入set中,当有重复的时候,说明循环节找到了,加上括号即可
=============

#笔试题目##airbnb##题解#
全部评论
第一题位运算简单一点
点赞
送花
回复 分享
发布于 2019-09-28 09:46
我感觉他这个根本没有判定切出去的功能,不要怕
点赞
送花
回复 分享
发布于 2019-09-28 09:24
国泰君安
校招火热招聘中
官网直投
第二题需要考虑负数吗?我没考虑负数,但也都过了
点赞
送花
回复 分享
发布于 2019-09-28 10:25
第一题数据是不是最多只有26个字母A-Z?
点赞
送花
回复 分享
发布于 2019-09-28 10:55
确定不是ez难度么
点赞
送花
回复 分享
发布于 2019-09-29 13:23
老哥我也是,本地ide全a了,到现在没消息,唉这可太坑了
点赞
送花
回复 分享
发布于 2019-09-29 15:13
+1,收到电话的老哥请update一下鸭
点赞
送花
回复 分享
发布于 2019-09-29 16:17
请问楼主收到下一轮面试通知了吗?
点赞
送花
回复 分享
发布于 2019-10-11 18:04

相关推荐

#简历#先说一说我自己的想法,很多人都很排斥苍穹外卖,认为没什么技术点和含金量,但实际上我觉得恰恰相反,苍穹外卖虽然代码本身并不是你自身能力的证明,但是是作为一个新人学习时很好的跳板和原始框架,在这个框架上进行的改进可以很好的辐射到你自己的个人成果上,并作为你和面试官聊天的筹码大多数人的苍穹外卖只写增删改查,千篇一律,吸引不了面试官,所以这才让大家误以为只要是苍穹外卖就不要写进简历里这种误区,但实际上如果你在原有的层面上进行改进,并作为你的项目亮点和面试官介绍,告诉他你的苍穹外卖和别人的有什么不同,增加了哪些技术难点,这才显得你是完全自己理解了这个项目,并且有自己动手实践项目的能力,而不是就看了个课程就以为自己会了,就当成自己的了,如此一来,这反而成为你的加分项苍穹外卖为什么看的人最多,说明它好啊,如果它不好,为什么看的人还这么多,想清楚这个逻辑,我觉得要做的最重要的事,就是如何在原有框架上进行改进提效,比起听其他人的话重新搞一个项目性价比高得多,而且我亲测项目并没有成为我找到工作的阻碍,我投的大厂一大半都给我面试了,而且很多不止一个部门,退一万步说,当你手头没有其他项目的时候,有苍穹外卖总比什么都没有的好很多,不需要因为苍穹外卖有任何心理负担关于简历的任何部分都欢迎大家提意见,十分感谢大家,祝大家找实习+秋招顺利上岸,offer拿到手软#简历中的项目经历要怎么写##我的上岸简历长这样##最后再改一次简历##简历##简历被挂麻了,求建议#
点赞 评论 收藏
分享
点赞 13 评论
分享
牛客网
牛客企业服务