Zscaler 面试经历 |校园安置驱动2020
第 1 轮: Hackerrank 在线测试。有 20 道 1 分的 MCQ 和 4 道编码问题,共 240 分。 MCQ 基于网络、操作系统和 Linux/UNIX。
两个编码问题是 50 分,两个是 70 分。问题是:
- 给你一个二进制数组(只有 1 和 0),你应该把所有的 1 放在右边,把所有的 0 放在左边,反之亦然。可以执行的操作是交换两个相邻的值,找到所需的最小操作数。
- 您从第 0 个位置开始,每走一步,您可以选择向前移动 I(i 是步数)步或保持在您的位置。有一个你无法忍受的坏指数。在避免坏索引后,找到您可以在 k 步内达到的最大索引。
- 给定一个附有罗马数字的名称列表。首先按名称对它们进行排序,然后按附加的数字按升序排列。
- 与多次附加字符串以获取给定字符串有关的字符串问题。如果我们可以通过多次附加第二个字符串来生成第一个字符串,那么我们必须返回通过附加一次或多次生成第二个字符串的最小字符串。
在大约 430 名学生中,只有 12 人被选中。
技术面试一:
- 说说你自己。
- 快速排序的复杂性是什么以及如何使其始终为 nlog(n)。他问这个问题是因为我有一个关于排序可视化的项目。
- 操作系统问题:什么是虚拟化(就虚拟内存而言)。在单核系统中,运行 3 个进程,每个进程大小为 526Mb,系统内存为 1Gb。操作系统如何处理这个?有关页面替换的问题。
- 网络问题: DHCP 协议中遵循的过程:没有回答。 TCP和UDP之间的区别。当您在浏览器中键入 www.google.com 时会发生什么。将以太网电缆连接到系统时会发生什么。什么是动态IP。
然后有两个编码问题:
- 给定一个大小为 n 的数组和一个整数 k,找出所有大小为 k 的子数组的最大值。
- 评估表达式树。
- 问了第三个问题,说一下形成表达式树的逻辑,不过时间已经结束了。
技术面试2:
- 再次从介绍开始。
- 问了一些关于我正在从事的项目(在线多人游戏)的问题。您使用的是什么服务器。您是否为登录身份验证编写了一些代码?你用的是什么数据库?为什么使用 MongoDB 而不是 MySQL。
- 然后问了一个编码问题:给定一个逗号分隔的键列表和字符串向量(如 CSV 文件)中的一些其他逗号分隔值,解析它并返回一个包含键值对的映射向量。
- 询问孩子、父母、僵尸进程。
- 线程和进程之间的区别,我很困惑并给出了错误的答案,但他持续了大约 10 分钟。
- 然后从第一轮加载一个问题(带有 badIndex 的问题),并告诉我优化我的代码,我能够在我们多次调用函数的情况下进行优化(通过预先存储所有结果)。
技术专访3:
- 又开始介绍了。
- 告诉我关于 devTest 的角色。
- 创建一个函数指针,不记得语法
- 讲述一些关于 C++ 中的虚拟化的事情,我无法回答。
- 写了代码: char *ch = new char[10];询问堆和堆栈中的内存分配。创建 10 个字符指针。
- 然后问了一个编码问题:计算连续字母的数量并将数字附加到字符上。不允许使用地图或任何额外的空间。必须对输入本身进行操作。唯一给出的额外空间是输入字符串末尾的一些空间(等于字符串的长度)。在那挣扎了一个小时,但没有得到最终答案。
Input : “aaaabbbca”
Output : “a4b3c1a1”
人力资源回合:
- 说说我这两天的经历吧。
- 从昨天的演讲中,您对我们有什么印象?
- 你对自己的表现满意吗?
- 再次详细讲述了角色。 (开发测试角色)
大约 2 小时后,他们通过电话通知我,我被选中了。共有3名学生获得了实习和全职offer。