Facebook SDE 电面+onsite 面经

2019-04-13 15:39发布

已经在Facebook工作了一段时间,整个面试过程记忆还比较清楚,今天来这里分享一下我面试 facebook 的经验。
我申请的职位是software engineer, 投完简历后不久就收到了recruiter的通知,预约了电面。

电面

电面很简单,只有两个简单的问题,很容易解决。但可能是因为这是我第一次电话面试,所以我当时电面还是有些紧张。电面刚开始时紧张到面试官都在跟我说Don't worry,后来想想没什么可担忧的,被拒还可以再投嘛,心情也就慢慢平静了下来。1.给定一个字符串,判断其是否为一个回文串。只包含字母和数字,忽略大小写。LintCode原题链接:http://www.lintcode.com/zh-cn/problem/valid-palindrome/Solution链接:http://www.jiuzhang.com/solutions/valid-palindrome/2.代码库的版本号是从 1 到n的整数。某一天,有人提交了错误版本的代码,因此造成自身及之后版本的代码在单元测试中均出错。请找出第一个错误的版本号。你可以通过 isBadVersion 的接口来判断版本号 version 是否在单元测试中出错LintCode原题链接:http://www.lintcode.com/zh-cn/problem/first-bad-version/Solution链接:http://www.jiuzhang.com/solutions/first-bad-version/

Onsite interview

电面完第二天,recruiter就给我发了一封邮件,说我通过了电面,可以去onsite了。onsite一共进行了四轮,四轮的面试官都很nice,没有感觉有距离感的。基本上四轮面试都是聊了聊之前的项目经验和几个很常见的面试问题。除此之外偶尔还聊了点别的,我挺喜欢这样的工作氛围,当时很期待自己面试能通过和他们一起工作。每一轮都会进行coding,这里就放我记得还比较清楚的三道。1.序列化是将数据结构或对象转换为比特序列,以便将其存储在文件或内存缓冲区中,或在网络连接链路上传输,以便在同一个或另一个计算机环境中重建后的过程。设计一个序列化和反序列化的二进制树算法。没有限制你的序列化/反序列化算法应该工作。你只需要确保一个二叉树可以被序列化为一个字符串,这个字符串可以反序列化到原来的树结构。LintCode原题链接:http://www.lintcode.com/zh-cn/problem/binary-tree-serialization/Solution链接:http://www.jiuzhang.com/solutions/binary-tree-serialization/2.给定一个文档(Unix-style)的完全路径,请进行路径简化。LintCode原题链接:http://www.lintcode.com/zh-cn/problem/simplify-path/Solution链接:http://www.jiuzhang.com/solutions/simplify-path/3.LintCode : Sort ColorsLintCode原题链接:http://www.lintcode.com/zh-cn/problem/sort-colors/Solutione链接:http://www.jiuzhang.com/solutions/sort-colors/在最后一轮,我遇到了一个难题。面试官向我提供了一些提示后我做了出来。当时等通知的时候还害怕因为这个过不了面试,所以后来收到通知拿到offer后真的是挺惊喜也很开心的。