一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 4169|回复: 57
收起左侧

snapchat 3/29 onsite

[复制链接] |试试Instant~ |关注本帖
sheepmiemies 发表于 2016-3-30 04:35:22 | 显示全部楼层 |阅读模式

2016(4-6月) 码农类 硕士 全职@Snapchat - 内推 - Onsite |Otherfresh grad应届毕业生

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
昨天刚结束,很感谢地里大家分享的面筋,中了一些,不过无奈水平有限,多半已跪。给大家分享下新题。
onsite前:
沿海滩走10分钟到,一个叫GingerBread Court的小巷子。如果HR不说还真挺难找,不过进去了也不知道是哪一间因为没有标志,是一个小哥开门领进去check in的。之后在隔壁候着,陆续一共有五个人来,两个面QA的老外,我们有三个国人面SDE。11点的面试等到了11:15才开始,都等乏了。。。

第一轮:. Waral 鍗氬鏈夋洿澶氭枃绔,
面试官:亚裔妹子,人很nice很可爱,好像是broadcast组的,就是题一出我就有点懵了。

题目: ternary expression paser (三目运算符), input是一个string,其中 'T' 表示true, 'F' 表示false, 要求返回最后运算的结果。
. From 1point 3acres bbs
乍一看题目很直接, bool expression ? first result : second result ,但实际上我们通常都用的都是非常简单的形式,但每一部分都可以无限嵌套。例如:
T ? T : F ? T : 1 : 2 : F ? 3 : 4;
原本妹子没让我考虑bool expression部分也嵌套的情况,结果我本着把问题分析清楚的原则,成功把问题弄的复杂了,她后来觉得这可以作为follow up。。。
说了两三个简单的solution,然后举例发现有问题。在妹子的提示下,写出了 “不考虑 bool expression”的情况,但是因为已经说出口了,妹子指出我还需要继续考虑。最终时间不够,没有运行代码。
过后发现,确实应该多在纸上找一下规律,理清逻辑在写解法。string的变式题对我来说比较tricky,完全在脑子里思考容易变成一团浆糊。。。。妹子对我我说,没事她比较看重逻辑。我心里只能说谢谢你的安慰。。T.T

午饭:
美国小哥,Seattle土生土长,UW毕业直接来snapchat工作,感觉很开朗很厉害的样子。去了其中一个食堂发现好多国人,但是地方比较小比较挤,饭菜还行。我们带着饭去了另一个snapchat租的小阁楼的楼顶聊天吃饭,那风吹得我简直冷洒比。。。从面试地点和食堂来回聊了蛮多,从他们data组聊到篮球足球dota2。我俩都表示足球太难碰到球了还是篮球好好玩,并且两人对dota2辅助的重要性深有同感,同时鄙视网上自私自利只喜欢玩carry的玩家哈哈哈。. from: 1point3acres.com/bbs
.鏈枃鍘熷垱鑷1point3acres璁哄潧
第二轮:.鏈枃鍘熷垱鑷1point3acres璁哄潧
面试官:挺厉害的国人小哥,原谅我忘记你是哪个组了。。。去过大公司,换过start up,最后来的snapchat,逻辑很清晰。聊了好一会project,问得很详细,花了不少时间。
题目: Alien dict (感谢面筋。。。)

具体就不说了,写了topo sort。之后小哥详细问了怎样test保证能在product work,扯了下unit test + modular test + system test, 然后具体说了unit test的五六种case,然后test发现有个小bug,改之。再问如找不到valid sequence咋办,以及写exception。小哥不太熟unordered_map,问我有个地方是否会出现out of bound问题,我说map会直接新建一个value不会有问题,他表示惊奇并且说还是要注意下。

第三轮:
面试官:白人manager,手下两个team,team主要做internal tool, UX之类。10+年工作经验,很nice很耐心。问了会project之后开始做题。
题目: construct string from web page + XML paser,再次感谢面筋,不过有一点不同是需要设计data structure保存paser后的结果。
每个token有如下结构,然后给了个API getNextToken()获取下一个token, 我表示应该还有个hasNextToken()。
token {
  string name; // e.g.  story, id, snaps
  string tag_type; // {open, close, test} 三种type
};
. 鍥磋鎴戜滑@1point 3 acres
第一题没让写代码,就讨论,用hash map。
第二题说了用stack 保存状态来解析,但是在设计结构的时候纠结了一会。最近缺乏运动,因而下午有小睡的习惯,结果在这个问题上卡了一会。说用nested hashmap,他表示make sense,就是想了半天没想到用下面这个结构,他提示我可以用vector<unordered_map<string, Node>>的结构,表示恍然大悟,然后发现应该并不需要vector。写完之后follow up就是如果tag不匹配怎么检测。
Node { 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  string name;
  string value;
  unordered_map<string, Node>;
};

第四轮:
面试官:比较腼腆的国人小哥,刚从google跳槽过来,但是中途话比较少不太主动给提示,但你跟他交流他还是很愿意跟你解释。表示我们可以skip introduction和project直接coding,LZ表示当时脑子快累洒比了,欣然同意。. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
题目: tic tac toe的m*n版本,也就两个人是在一个m*n的board上玩。(LZ最讨厌玩游戏了。。。)
规则如下:
(1)获胜方式依然是横竖对角线有三个连在一起的symbol。
(2)每次movement不能任意放置,只能放在 每一列 的 最下方的空白处,也就是说每个玩家每轮最多只有 n (行数)个选择。.鏈枃鍘熷垱鑷1point3acres璁哄潧
要求实现以下API:
(1)valid()。检查当前board是否有效,有效board必须满足 (i) 没有人获胜  (ii) 不能违背第二条规则。
(2)nextMove()。返回当前玩家的任意一个movement,要求对手无法获胜,如果找不到报错(我选择了返回-1)
. 鍥磋鎴戜滑@1point 3 acres
脑子实在累了,讨论了一下给出了bruteforce的方案。
(1)valid主要难点在怎么判断已经有人赢了,LZ用check8个方向一共16个格子的方法,于是O(16*N^2)。跟小哥交涉,表示常数可以减小,不过16也合理可以写。
(2)假设当前为player A, 则枚举A的n个选择,每个选择会对应B的n个选择,复杂度依然是O(16*N^2)。但实际上如果不保存board state,不管是A还是B都得先找到每一列放置的位置,每次都扫描一遍就会多出O(N)的时间,总时间会变成O(N^3),所以需要保存一下状态。
加上一些细节的调整,最后写完但依然没时间测试debug了,两人一起表示过了一遍应该work。。。。. visit 1point3acres.com for more.

总结:-google 1point3acres
刷面筋依然高效。遇到思路不清晰的问题,还是在纸上多举几个例子跟面试官讨论一下,思维清晰了反而能节省时间。继续保持coding,并且坚持运动增强体力。。。move on。。。。. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷

鏉ユ簮涓浜.涓夊垎鍦拌鍧.

补充内容 (2016-3-30 22:50):
抱歉第一题例子有个小typo。。。 T ? T : F ? T ? 1 : 2 : F ? 3 : 4; 会转化成T : 1 : 4,然后返回1

补充内容 (2016-3-30 22:51):
第三轮也有个小typo,XML和之前面筋一样都是三种类型 {open, close, text}
. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
补充内容 (2016-3-31 02:34):
已跪,各位加油!

评分

6

查看全部评分

 楼主| sheepmiemies 发表于 2016-3-30 04:36:46 | 显示全部楼层
抱歉第一题例子有个小typo。。。 T ? T : F ? T ? 1 : 2 : F ? 3 : 4;
回复 支持 反对

使用道具 举报

endeavorchan 发表于 2016-3-30 08:40:11 | 显示全部楼层
sheepmiemies 发表于 2016-3-30 04:36. visit 1point3acres.com for more.
抱歉第一题例子有个小typo。。。 T ? T : F ? T ? 1 : 2 : F ? 3 : 4;

第一题 确实很难。这周五面。估计悬。这么难的题目还要bug free  好怕怕。而且我是用C++的  本来就有劣势
回复 支持 反对

使用道具 举报

a27400 发表于 2016-3-30 08:55:57 | 显示全部楼层
虽然没看题 但是感觉好难…
回复 支持 反对

使用道具 举报

Ulu2005 发表于 2016-3-30 08:59:57 | 显示全部楼层
明天面 = = 希望做不出来别太尴尬。。
回复 支持 反对

使用道具 举报

endeavorchan 发表于 2016-3-30 09:08:31 | 显示全部楼层
Ulu2005 发表于 2016-3-30 08:59
明天面 = = 希望做不出来别太尴尬。。

最近他们好像再扩招啊。这个点 扩招的公司真不多了  加油
回复 支持 反对

使用道具 举报

 楼主| sheepmiemies 发表于 2016-3-30 09:40:53 | 显示全部楼层
endeavorchan 发表于 2016-3-30 08:40
第一题 确实很难。这周五面。估计悬。这么难的题目还要bug free  好怕怕。而且我是用C++的  本来就有劣势

他家的题主要难在需要逻辑比较清晰,但确实没有说要bug free,这个只是bonus,不过要尽量能run能test。
至于语言劣势,我也用C++,没有明显感觉。。。通常问题都出在思路上。。。
回复 支持 反对

使用道具 举报

 楼主| sheepmiemies 发表于 2016-3-30 09:41:05 | 显示全部楼层
a27400 发表于 2016-3-30 08:55
虽然没看题 但是感觉好难…
. visit 1point3acres.com for more.
。。。没看题你咋感觉的
回复 支持 反对

使用道具 举报

 楼主| sheepmiemies 发表于 2016-3-30 09:42:07 | 显示全部楼层
Ulu2005 发表于 2016-3-30 08:59
明天面 = = 希望做不出来别太尴尬。。

当时第一轮做完我还在想会不会两轮被请出去。。。不过事实证明后续的题目还是可以继续的。加油!
回复 支持 反对

使用道具 举报

aloncgo 发表于 2016-3-30 10:00:23 | 显示全部楼层
Ulu2005 发表于 2016-3-30 08:59
明天面 = = 希望做不出来别太尴尬。。

你明天面?   现在在hotel erwin吗?. from: 1point3acres.com/bbs

补充内容 (2016-3-30 10:01):.鏈枃鍘熷垱鑷1point3acres璁哄潧
我也明天
回复 支持 反对

使用道具 举报

Ulu2005 发表于 2016-3-30 11:14:20 | 显示全部楼层
aloncgo 发表于 2016-3-30 10:00
你明天面?   现在在hotel erwin吗?
. from: 1point3acres.com/bbs
补充内容 (2016-3-30 10:01):

在啊兄弟
回复 支持 反对

使用道具 举报

endeavorchan 发表于 2016-3-30 11:41:56 | 显示全部楼层
有没有  周四到HOTEL ERWIN?
回复 支持 反对

使用道具 举报

endeavorchan 发表于 2016-3-30 11:42:19 | 显示全部楼层

两位大神 求面完了 发面经啊
回复 支持 反对

使用道具 举报

windream1991 发表于 2016-3-30 12:47:41 | 显示全部楼层
lz第一轮是被妹纸迷住了所以发挥失常吧
回复 支持 反对

使用道具 举报

 楼主| sheepmiemies 发表于 2016-3-30 12:56:37 | 显示全部楼层
windream1991 发表于 2016-3-30 12:47.鏈枃鍘熷垱鑷1point3acres璁哄潧
lz第一轮是被妹纸迷住了所以发挥失常吧

毅神你的名字暴露了好嘛
你入职可以考虑一下哟~好像叫蒂芙尼哈哈
回复 支持 反对

使用道具 举报

jiebour 发表于 2016-3-30 12:57:52 | 显示全部楼层
sheepmiemies 发表于 2016-3-30 04:36
抱歉第一题例子有个小typo。。。 T ? T : F ? T ? 1 : 2 : F ? 3 : 4;

写错了吧楼主?
倒着看,既然是F,那我肯定选4,那么就变成了:
XXXXXXX ? 1 : 2 : 4
. 鍥磋鎴戜滑@1point 3 acres
三个数怎么整啊?

谢谢!
回复 支持 反对

使用道具 举报

jiebour 发表于 2016-3-30 13:03:38 | 显示全部楼层
还有,可以问下楼主open close test里面的test指的是什么嘛?
多谢!
回复 支持 反对

使用道具 举报

 楼主| sheepmiemies 发表于 2016-3-30 22:49:20 | 显示全部楼层
jiebour 发表于 2016-3-30 12:57
写错了吧楼主?
倒着看,既然是F,那我肯定选4,那么就变成了:
XXXXXXX ? 1 : 2 : 4

是要正向看的,先找boolean expression,倒着看就错了,我当时就想倒着看其实不对,因为每一部分都可能nested。
分三个部分
(1) T ? T : F ---> 返回T. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
(2) T ? 1 : 2 ---> 返回1. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
(3) F ? 3 : 4 ---> 返回4
原式就变成了(1) ? (2) : (3) ---> T : 1 : 4,最后返回1
因为(1) return的是T,所以其实只用解析(2)。
回复 支持 反对

使用道具 举报

windream1991 发表于 2016-3-31 00:15:44 | 显示全部楼层
sheepmiemies 发表于 2016-3-30 12:56
毅神你的名字暴露了好嘛. visit 1point3acres.com for more.
你入职可以考虑一下哟~好像叫蒂芙尼哈哈

卧槽这都能看出来
回复 支持 反对

使用道具 举报

eternity59 发表于 2016-3-31 01:40:00 | 显示全部楼层
lou zhu you xiao xi le ma
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-5 04:29

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表