《数据科学面试40+真题讲解》,K神本年度最后一次开课


一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
码农求职神器Triplebyte:
不用海投,内推你去多家公司面试
Airbnb 数据科学职位
in analytics and inference
天天打游戏、照样领工资,
你要不要来?
把贵司招聘信息放这里
查看: 3726|回复: 0
收起左侧

Square onsite

[复制链接] |试试Instant~ |关注本帖
micro_long 发表于 2016-1-13 10:53:50 | 显示全部楼层 |阅读模式

2016(1-3月) 码农类 硕士 全职@Square - 猎头 - Onsite |Otherfresh grad应届毕业生

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

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

x
中午刚刚参加完 Square 的onsite, 攒个人品.
Square是大概4个月之前LinkedIn 上HR找我, 然后后来一直没有followup, 各种跪之后一个月前想起来还有这么个公司就给HR发了邮件.
然后就是 2轮 phone interview

1. 给一组转移比如[1:2, 2:3, 3:4] 表示前面那个元素可以转移到后面那个元素里, 然后给你一组list[1,2,3,4,5], 让你求能不能从某个元素到达另一个元素.
    follow up是存不存在一个环之类的,记得不太清楚了,反正就是图和DFS().  一共俩个follow up, 因为时间问题, 我最后一个followup只是写了代码,没有验证, 最后面试官也让我过了.

2. 给一组数 [10,4,6,7,8,9], 然后给一个range 比如是 [1,5], 求出这个数组中所有的在这个range中的数.
    这题和 leetcode里 search range 很类似. 主要是 binary search.
    follow up 是如果数组中存在重复的数怎么处理, 反正search range的解法可以handle这个.. Waral 鍗氬鏈夋洿澶氭枃绔,
    这一轮面试面试官迟到了10分钟,然后聊的也比较开心和谐. 很快就写完了,算上面试官迟到的10分钟一共就30分钟, 面试官就说他OK了, 然后问他问题.
. Waral 鍗氬鏈夋洿澶氭枃绔,

因为要过节, 然后就是我漫长的准备onsite, 前后大概俩个星期, 各种面经都自己写了一遍, 然后今天中午的onsite.

1. 第一轮面试是个 Dominoes, 先写类表示Dominoes和bags, 比如说  [1,2] 表示这个dominoes 上面是骰子1 下面是骰子2, 然后找出是否存在一个路径[[1,2], [2,3],[3,4]]
   我想了下打算用hash做,这样不用每次都搜索, 结果被面试官否决了, 里有是 dominoes的size是k, 即使搜索的O(kn)也是O(n),让我直接搜.
   然后就写了个算法, 测试通过.
   Follow up 是如果骰子上下部分咋办.上下部分就搜索的时候俩面都看一下.
   Follow up 是是否存在一个环, 比如存在骰子 [0,1], [1.2], [2,3] [3,0] 就算一个环. 聊了一下求环的算法, 用DFS写,看topping是否被访问过, 如果被访问过就是环.
   Follow up 是如果骰子的上下不分, 比如 [0,1] [2,1] [2,3] [3,0] 也算一个环, 注意到这个和上面那个的区别是把 [1,2] 换成了[2,1].
   打算改我的DFS算法,确实不好写, 最后面试官给了个提示,可以每次遍历的时候,遍历当前的这个dominoes翻过来(就是把top和bottom颠倒一下), 然后就写出来了,注意DFS遍历完以后要把元素翻回去.不然会影响结果.
   第一面觉得还不错, 虽然代码过程中有一些bug,最后都完成了,也都过了测试.

   我在面试第一面的时候, 听到旁边的小哥问那个 square 落下来那题, 我面试前在家还写过这题, 哎!心都碎了,运气不好,没摊上我.
. Waral 鍗氬鏈夋洿澶氭枃绔,
2. 面试官上来也特别的友好,介绍了自己是前10%员工.在square工作6年了.然后就是帮我配置了一下环境 pycharm 设置各种路径,创建工程啥的,耽误了快10分钟.
    然后就讲问题, 这个题目是我遇到过的最长的题目.

    模拟 linux 下的 xargs, 比如说 seq 5 | xargs -n 3 echo  这个命令就会把前面生成的1,2,3,4,5 list 传到xargs中,然后按照-n的参数进行分行.
    结果就是  1 2 3
                   4 5
    因为第二行就2个元素.

    其实题目讲明白了以后不难写, 但是牵涉到大量的标准输入输出和参数处理,所以问题也没那么容易.
    用python写,调用了一个 python里面的 subprocess_check() 啥的命令. 先从标准输入中读取输入 (类似前面的seq 5 这种), 然后从参数中读取命令,添加到subprocess_check后面.
    结果用pycharm不知道怎么读入标准输入, 哎!总之环境各种坑爹. 最后的解决方法是在 pycharm里写代码然后去命令行里手动run.

    我最开始采取的措施是先把前面所有的输入都读进来, 然后再处理.    然后代码写完了, 验证了一下,和结果一样.. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
    follow up 是如果输入是无限的咋办? 比如说  yes | xargs -n 3 echo  前面那个 yes 会无线的输如 y 这个字符.. From 1point 3acres bbs
    做法就是不能读完,每次等到读的字符串够处理的时候就处理, 然后处理完了就删了. 写了个while 循环.  跑了一下测试,发现没有问题.
    给面试官解释了一下代码逻辑, 最后也算是完成了,但是感觉磕磕盼盼的. 而且一旦出了问题以后, 会出各种问题. 反正觉得有点坑.

    我觉得我大部分时间都花在环境和输入输出的处理上, 就跟面试官解释了一下这个环境和系统命令我不熟,不然我会做的更好.
    我觉得还有其他的follow up,就问了一下面试官, 他说还有一个特别复杂的bonus follow up. 反正就这样了.

总之就觉得 square 面试确实很少面重复的题,也不用紧张,大部分题都是从简单的开始,一般都有俩个follow up. 也祝大家求职顺利.


最后, square的office各种高大上,环境各种好,而且超多萌妹子,公司员工非常diverse, 白人比较多, 几乎没看到印度GGJJ.

评分

1

查看全部评分

本版积分规则

关闭

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

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2017-11-23 12:09

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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