GT背靠背onsite - ┅☆心随风飞 - 博客频道 - CSDN.NET
Google:
由于暑假在G家实习过,所以只是简单面了2轮。后来跟以前的intern host吃饭得知,他和另一个reviewer对我的实习工作都给了不错的评价,所以面试的时候面试官都放水了,题目出得异常简单,每题都是10行代码搞定的那种。
第1轮:
1. 实现一个hangman游戏,给定一个词作为答案,然后进行猜测。猜测的时候只知道这个词的长度。每次可以从26个字母里的猜一个字母,如果该单词存在该字母,这些字母都会明确出在单词中的位置,并且可以进行下一轮猜测,否则算错。如果一共错了六次就不能再猜了。如何能够最大化猜对的几率。例如答案为hangman,一开始的字符串为"*******",如果猜n,正确,可以显现"**n***n",再猜a,正确,可以显现"*an**an"。
我用的DFS,按照字典里字母出现频率由高往低去猜。
2. 给一个List<Integer>,去除所有的偶数,要求只扫一遍并且不使用额外空间。Follow up是如何generalize这个函数,做成一个library。第二问如果用c++写就用template,并且把判断奇偶的那个部分做成函数指针(C++11里还可以用bind),或者用virtual function。如果用java,就泛型 + abstract method。
第2轮:
这个证明了面试没有最水,只有更水。。。 两个问题分别是:1)实现pow(int a, int b);2)比较DFS和BFS。
Twitter:
问题都不难,由于签了NDA,这里就不透露细节了。
1. 质数问题变种。
2. 各种sampling的问题,大数据的,分布式的。
3. LeetCode原题:Clone a linkedlist with random pointers。
4. 设计如何分布式存储tweets,包括保持排序性质什么的。
5. 字符串匹配问题,都还没涉及到什么fancy的方法例如KMP什么的时间就完了。
6. 设计一个Timer class。
估计由于项目经历,很多问题最后都延伸到了分布式实现和用MapReduce实现。
Read full article from GT背靠背onsite - ┅☆心随风飞 - 博客频道 - CSDN.NET