📜  Zynga 面试经历 |在校园

📅  最后修改于: 2022-05-13 01:58:38.660000             🧑  作者: Mango

Zynga 面试经历 |在校园

Zynga 来到我的校园担任软件工程师职位。首先,他们进行了基于计算机的测试,他们提出了 3 个编码问题和 15 个 Aptitude 问题。我们有 60 分钟的时间来解决编码和能力问题。 3个编码问题是:

  • 查找数组中的第一个非重复元素
  • 通过改变链接成对交换链表的元素
  • 二叉搜索树的锯齿形遍历。

21名学生入围下一轮面试。在一轮面试中,每个人都被问到了不同的问题。我被问到数据结构、Linux、算法、系统设计。但是我的朋友中很少有人被问到所有 3 轮的数据结构和算法。

第1轮:

  • 高效实现 git diff(基本实现)

我解释了我首先标记我的文档并为原始文档使用 Tries 数据结构的方法,尽管它在时间复杂度方面是有效的,但在空间方面却不是。所以面试官向我解释了如何借助散列(使用 MD5)来做这件事。我没试过,如果有人知道,请在评论部分回答。

  • 跑步时会发生什么
    ls

    .

面试官要我跟踪系统调用和fork、exec、terminate等的过程。

  • 即使你只旅行到 sqrt(n),为什么素数程序也能工作的数学证明

我通过使用一些变量、符号并最终证明了这一点来做到这一点。

第 2 轮:

  • 给定一个单词字典作为文本文件,您的输入是一个单词,返回字典中前缀为给定单词输入的所有单词。设计在时间复杂度方面应该是有效的。基本上他希望我开发自动完成。

我使用 Tries 完成了它,并使用 DFS 来遍历和存储所有预测。

  • 设计和开发 Web 服务器(例如 apache、nginx)

设计是一个高度主观的话题,而且我在我的工程中从未使用过很多设计和分布式系统。我只知道我在网上和书本上学习的理论部分。所以我猜我的面试官对我的网络服务器设计并不满意。因此,我在这一轮后被拒绝了。

第三轮:

自从我被拒绝后,我从朋友那里得知,他们问他数据结构和算法以及 C 和 C++ 的基础知识。例如,当您使用新命令时会发生什么,跟踪所有系统调用。

供你参考 :

他预计答案是

new->malloc(), mmap(), brk(), sbrk().

面试官非常友好,如果遇到一些小事或愚蠢的事情,他们会帮助我们。

如有更多问题,请在评论部分提出。