Snapchat 面经 | LA 总部面试体验

专栏 | 九章算法
网址 | www.jiuzhang.com程序员

面试流程面试

整个面试过程包括一场电面和四场onsite。算法

电面编程

电面比较轻松,先是自我介绍,而后问了一些我简历上的项目问题。由于这一部分能够提早准备,因此表现的比较好。数组

另外还问了一道Lintcode上中等难度的算法题微信

完美平方ui

这道题目以前在Lintcode上刷过,因此完成的还不错。线程

Lintcode原题连接:
www.lintcode.com/zh-cn/probl…日志

参考答案:
www.jiuzhang.com/solutions/p…code

电面没多久被通知能够参加OnSite了,并约了OnSite的时间。

OnSite One

第一轮onsite问了一些计算机基础知识方面的问题和一道算法题。

给出一个数组

包括一些会议的起始时间和终止时间,判断一我的可否参加全部的会议。

LintCode原题连接:
www.lintcode.com/zh-cn/probl…

参考答案:
www.jiuzhang.com/solutions/m…

OnSite Two

这一轮问了两道算法题:

给出:

class Throttler {int qps;public Throttler(int qps) {}pubilc boolean allowAccess() {}}
实现速度限制器,allowAccess(),返回当前的时间是否容许

例如:
qps is 2
request1 time 0.0 return true;
request2 time 0.5 return true;
request3 time 0.6 return false;

最小字串覆盖

LintCode原题连接:
www.lintcode.com/zh-cn/probl…

参考答案:
www.jiuzhang.com/solutions/m…

这道题目稍微花了点时间想,但最后仍是作出来了。

OnSite Three

第三轮onsite的时候给的算法题一共有三道。

给出单核CPU日志

解析日志,日志中的每一行都有3列:

工做名(String)开始/结束(boolean)的时间戳(long)
名称(String)开始/结束(boolean)时间戳(long)

好比:
f1 start 0
f2 start 2
f3 start 4
f3 end 5
f2 end 8
f1 end 9

对应输入的返回值:
f1 : 3
f2 : 5
f3 : 1

在终端中输入一个文件名

而后按“tab”,要求找到与目标文件匹配的最小的字符串长度。

编写一个能够由多个线程访问的计数器

每访问一次,计数器+1

OnSite Four

这一轮没太聊其余的,面试官看起来有些严肃,上来以后先问了问以前几面的感觉就开始作题。

旋转链表

LintCode原题连接:
www.lintcode.com/zh-cn/probl…

参考答案:
www.jiuzhang.com/solutions/r…

层次遍历二叉树

LintCode原题连接:
www.lintcode.com/zh-cn/probl…

参考答案:
www.jiuzhang.com/solutions/b…

给定一个字符串,逐个翻转字符串中的每一个单词

LintCode原题连接:
www.lintcode.com/zh-cn/probl…

参考答案:
www.jiuzhang.com/solutions/r…

如何使用4G RAM对磁盘中100G的文件进行排序

面试感想

四轮现场面下来,发现snapchat很是看重算法和编程能力。

并且snapchat现场面时给的算法题数量相比以前面试过的其余公司也多一些。

因此面试前必定要好好刷题,提高一下作题速度。否则像我第4轮遇到这么多题目,必然要跪。


推荐阅读:



欢迎关注个人微信公众号:九章算法(ninechapter)。
精英程序员交流社区,按期发布面试题、面试技巧、求职信息等

九章算法,IT教育领域的深耕者
九章算法,IT教育领域的深耕者