Facebook onsite interview

原帖地址:一亩三分地

上礼拜五 onsite interview ,因为有 pending offer 所以跟 HR 催了,这週二收到了 offer ,搞了一整个学期的 intern hunting 终于拿到 dream company offer,写个面经回报地底,还没有 offer 的小伙伴们不要放弃请继续努力.

写个 onsite 前的一些小提醒,FB onsite 给住饭店,个人建议吃个好的早餐再去,饿着肚子是想不出什麽鬼的,加上我是东岸飞过去的,又有三小时的时差,当天早上四点就起床了,没吃好的早餐很容易不在状态,另外加州早上是很容易塞车的,请小伙伴们尽量提早打滴出门

面试我的是一个以色列人,后来看经历才知道是 Engineering Director 卧操,是个非常好的面试官,考题也不难,就 phone number letter combination 原题,但 follow up 就很实务面了

第一个 follow up:如果今天给你一本字典,裡面有几千万个单字,你可以用任何数据结构储存这个字典,请问你怎麽从你的 letter combination 中找出 meaningfule word? 举个例子,三个数字可能可以组成 “aaa”, “abc”, “dog”,那我们就只留下 “dog” ,因为只有 “dog” 是一个单词,楼主一开始提议用 set 储存,但是他说太 expensive ,后来改成用 trie ,然后找 prefix ,如果确定没有这个 prefix 就可以直接 pruning 了,面试官感觉很满意

第二个 follow up:如果今天不只要你找出一个单词的组成,连两个单词的组合都要找出来呢?比方说七个字的组成可以有 “element”(一个单词),但也会有 “eatrice”(eat rice,两个单词) 这样的组成,能不能把这个也找出来呢?但问到这裡的时候时间已经剩很少,没什麽太多时间讨论,我一开始先提出可以用 word break 的想法判断是不是两个字典中的单词,但面试官说其实方法很简单,就是把 trie 的 tail 跟 root 相连,这样找完一个字之后就会接着回头找其他的字,结果也就会包含多个字的组合了,然后我提出了一些这个方法的好跟不好的地方,面试官也觉得不错,皆大欢喜之下结束.

总之是一场不错的面试,当晚还寄了信谢谢面试官,结果面试官的回信就透露了我应该会上的讯息 lol,真的是遇到好人啦,多攒 RP 真的还是有帮助的

继续准备 final ,求大米&RP~