Google onsite面经

已经在Google工作了一段时间了,最近有很多朋友问我关于面试的经验,索性把它写下来,方便大家。我申请的是软件工程师职位,一共面试了5轮,5轮都是纯技术面,每轮45分钟左右。

因为Google是我的 dream company,所以收到面试通知的时候我很激动。后面跟HR约了面试时间,从约好时间到面试之前,我一直在为这次面试做准备。面试当天,我提前就到了面试地点,等了十多分钟,面试开始。顺便说一下,一般Google的HR工作效率都是很高的,有时候候场时间长一点,要有耐心。

####Onsite1

首先自我介绍,问了一些简历上的项目,接着进行了coding:

1.生成一个井字游戏的地图,包括了全部的状态和下一步的移动。规则(按序走):如果中间为空,则赢。如果可以,击败对手,放入一个随机的地方。

####Onsite2

二面问题:

  1. LintCode - 序列化与反序列化二叉树

题目地址:http://www.lintcode.com/zh-cn/problem/binary-tree-serialization/

Solution链接:http://www.jiuzhang.com/solutions/binary-tree-serialization/

####Onsite3

1.在围棋游戏中,如果你的周围全是棋子,将被捕获,如果你包围了自己,边界将扩大,写一个方法判断一个点是否会被捕获。

####Onsite4

1.给出了一个已知宽,高和支持的最大最小字体的屏幕,确定一个给定的字符串能显示的最大字体,单词和字符不能被切割。getWidth(char c, int fontSize)和getHeight(int fontSize)方法均已给出

####Onsite5

1.优化Web服务器实现从本地文件系统提供静态内容

五面下来能记清的核心问题就这几道,建议大家事前做刷题,做好准备,可以多参加几个面试,其实在每一次面试中都能有成长。

我走到现在,面试了很多家名企,失败的次数远远超过成功的,最后能拿到offer多多少少会有些运气成分在里面,这可能也就是所谓“和公司的缘分”。所以,摆平心态,不要因为被拒绝几次就轻易的放弃和否定自己,每次失败后总结经验防止下次再犯,保证下次一定比这次强,才是应该做的事情。

楼主能分享一下 timeline 吗?谢谢!!