Google电面过程

有幸认识几个大牛同学,得到了内推Google电面的机会,心想机会难得,就算去不了也算是人生圆满。不过最后挂的很蛋疼,也确实是有点遗憾。
Google的一面是电面,45分钟,提前一天确定好时间,在Google Doc上协同工作。对方会在Doc给出题目,然后我在Doc上写出代码。

题目很简单,给出一个摩斯码(MORSE_CODE)和字母表的对应关系用Map保存,这里只写了一部分)

摩斯码 字母表
a ..
b
e .

然后问:

  1. 如果给一段摩斯码,会不会有不同的翻译方式,为什么?
  2. 给一些单词,比如cat, dog, e, aa 编写一段程序,判断这些单词中,有多少个被重复利用过的摩斯码。(比如例子就是1)
  3. 给出一段摩斯码,给出他的所有翻译方式。

我的回答:

  1. 肯定有啊,眼睛看也看出来了,但是对方看起来想要个更专业的说法。

因为摩斯码不是前缀码,无法确定一串代码是不是不和其它的代码混淆。

  1. 我使用了两个Set。首先将所有单词翻译成摩斯码,然后放到第一个Set里。放失败的话(发现重复),就放到第二个Set里,这样就可以保证第二个Set里的个数是重复摩斯码的个数。

  2. 这是一个深度优先搜索,解决方法就是用递归,LeetCode上有,就不说了。

结果挂了
估计是觉得我沟通有问题吧,我自认为最后的代码写的都是对的,不知道她回去检查了没有。但是最初的第一题,也就是最简单的题目,我们交流的最长,我想这事Google的面试,所以直接想到最难的那一步去了,没想到只是个铺垫。
还有就是面试过程中她其实一直想让我把我想到的说出来,但是我更喜欢默默的把代码写出来,也许是这里不match

Google有一年的冷却期,嘛,再说吧。

不过最后还是要表扬一下Google,面试前有多个邮件确认,说一些要点和注意事项,面试后还有拒信,确实是良心公司。
程序员嘛,总是有谷歌梦的,面一下,挂了,没什么遗憾就好。

文章目录