没有在Google日本工作过,不过有一个东京的实习面试经验,有用的同学可以拿走。
东京Google 的实习流程和北美不太一样, 两轮不是背靠背一起面, 而是一面完了先考虑 feedback 再考虑二面.
我11月提交申请的, 然后1月底收到面试邀请, 2月初面了第一次, 3月初面了第二次, 面完一个星期收到进入host matching 通知.
我是硕士才开始学 CS 的, 所以基础比较惨, 要是不看九章我估计只会翻算法导论(我觉得面试前靠看这个基本是自杀行为).
具体面试问题:
一面面试官是一个欧洲美女, 先问了 resume 上做过的 project, 我本科毕业论文做的是一个进化算法求解 NP 的东西, 比较简单, 面试官就问了我跟已有的工作有哪些改进 blablabla, 然后让我解释了下 recall 和 precision 的意义, 什么时候需要追求高 recall 什么时候需要更高的precision. 然后编程题是:压缩字符串, 5555444444 -> 4564 (格式就是连续的个数+数字本身), 我一紧张写的很挫, 用了2个指针来比较, 其实毫无意义, 我写完之后跟面试官说不需要2个指针, 只要记录下 last_num 就可以了, 然后她表示赞同就 move on 了.
给定一个整数数组, 输出一个公式用加减乘除使结果最大, 比如给定(5, 7, -1,0), 就应该输出 5*7 - -1+0, 可以交换顺序, 只能用加减乘除不能用括号. 我没写代码, 讲了讲几种情况, 比如大于1的正整数无脑用乘相连, -1的话要看负数的个数之类的, 写了伪代码就时间到了.
二面是一个日本小哥......一开始先让我解释了内存泄露是什么意思, 然后怎么避免写c++忘记 delete, 我说用 handler 来管理 class, 然后他让我具体解释下 c++用 handler 和 python 的垃圾回收有什么区别, 我憋了一会说不知道.他说 it's OK...然后他问我 python 什么时候会导致内存泄露, 我憋了一会又说不知道, 他说当python 调用 c程序 就会泄露了(我一头黑线).
编程题:
1. 序列化一个包含了复数 string 的 array, 我就写了一个很简单的程序, 把每个 string 的 len 记录下来, 把所有的string join 成一个 string, 然后 write 进一个 output文件, 他说 ok, 然后问我这样做和 csv 相比有什么好处? 我琢磨了一会说可以立刻知道 len(废话), 然后他说我这样记录 len 的话可以更方便随机访问(我觉得好像没什么道理.....).
2. zigzag 矩阵遍历就不说了, 我没记错的话我留了1个小bug在上面......
Host Matching 求好运.....