Google Onsite

原帖地址:一亩三分地

这周2面的,现在在等结果,面得其实不好,recruiter说这周末或者下周初给我update,所以现在感到特别煎熬。。。发个面筋,希望能帮到大家,也希望大家能bless我拿到offer。
其实题目都不难,可能是因为我是在职的原因。
我就不写我的做法了,现在心里太乱了。。。

1. 第一轮是写一个bounded blocking queue,主要写add(long timeout)和poll(long timeout),就是说如果一个thread想加个entry到queue里,它可以设置一个timeout,如果这个timeout时间内没有加进去,就返回或者throw exception。

2. 第二轮是System Design,讨论Gmail的存储设计,主要是API和如何存放检索等等。

3. 第三轮是个中国大哥,直接说中文,感觉特别亲切。问题是给一个文件,里面每行是一个类似树的父子节点,比如说:
7,6
7,5
7, 4
6, 3
6,2
希望是打印出树状结构。
7 – 6
– – 3
– – 2
+5
+4
这个output的格式我也记得不太清楚了。我这题做的很不好,基本上没太能写出来,主要就是这个indentation没有弄好。

4. 第四轮是给两个list,求出在一个list中而不在另外一个list的entry,其实就是A-B和B-A。

5. 第五轮是找硬币题,不过是打印出最少硬币的序列,不是最小数值。这个题目我也答得不好,面试官希望我one pass,我的最初解是two pass,所以two pass写到一半他就说让写one pass的。写one pass的时候有bug,被指出来后,想到一个方法,面试官说是对的,不过不是面试官希望的。最后也没能写完,感到特别无力。。。