一亩三分地论坛

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

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

Square onsite

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

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

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

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

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这个.
    这一轮面试面试官迟到了10分钟,然后聊的也比较开心和谐. 很快就写完了,算上面试官迟到的10分钟一共就30分钟, 面试官就说他OK了, 然后问他问题.

. 1point 3acres 璁哄潧
因为要过节, 然后就是我漫长的准备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 落下来那题, 我面试前在家还写过这题, 哎!心都碎了,运气不好,没摊上我.

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 这个字符.
    做法就是不能读完,每次等到读的字符串够处理的时候就处理, 然后处理完了就删了. 写了个while 循环.  跑了一下测试,发现没有问题.
    给面试官解释了一下代码逻辑, 最后也算是完成了,但是感觉磕磕盼盼的. 而且一旦出了问题以后, 会出各种问题. 反正觉得有点坑.

    我觉得我大部分时间都花在环境和输入输出的处理上, 就跟面试官解释了一下这个环境和系统命令我不熟,不然我会做的更好.
    我觉得还有其他的follow up,就问了一下面试官, 他说还有一个特别复杂的bonus follow up. 反正就这样了.. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
. from: 1point3acres.com/bbs
总之就觉得 square 面试确实很少面重复的题,也不用紧张,大部分题都是从简单的开始,一般都有俩个follow up. 也祝大家求职顺利.


最后, square的office各种高大上,环境各种好,而且超多萌妹子,公司员工非常diverse, 白人比较多, 几乎没看到印度GGJJ. 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
. 鍥磋鎴戜滑@1point 3 acres

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2016-12-4 01:41

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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