📜  Gameskraft Technologies 面试经验 | (在 FTE 校园内)

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

Gameskraft Technologies 面试经验 | (在 FTE 校园内)

最近,由 Prithvi Singh (NSIT) 和他的朋友以及来自 Grofers、Codenation、Amazon 等许多公司的专家组成的初创公司 Gameskraft Technologies Pvt Ltd. 来到我们的校园招聘人员担任 SDE 的角色。首先,有一个关于印度游戏产业及其发展速度的预演讨论会。在那之后,我们进行了 1 轮编码,然后是 3 轮技术面试。

编码轮:

第一轮包括 3 个Hackerrank简单到中等水平编码问题:-

  1. 给定一个由小写字符和每个字符(az) 的类型组成的字符串,其中每个字母可以是普通和特殊类型。我们被要求找到最多包含 k 个正常字符的最长子串。字符串的长度可以是 10^5。 (提示:要使用 2 指针方法)。
  2. 给定由元音组成的序列的某些条件,例如,A. a 只能在 e, u, i 之前。 B. e 前面只能有 a, i。 C. i 前面只能有e,o,u 前面只能有o,i 和o 前面只能有i。但是语言不是直接的,所以要推导出序列上的规则。我们被要求在这些条件下找到所有可能的字符串的计数,这些字符串只包含长度为 l 的元音。我们需要报告答案 mod 1000000007,因为可能存在大量此类字符串。提示:- 记住模运算的属性。 (简单的 DP 解决方案)。
  1. 第三个问题是直接 nim 游戏,其中可以有 n 堆硬币。 https://www.geeksforgeeks.org/combinatorial-game-theory-set-2-game-nim/

在编码轮次之后,大约有25 人被选中。

第 1 轮(Skype 轮):

第二个是从班加罗尔办公室的工程师通过 Skype 获取的。首先在这里广泛讨论了我的简历,其中我提到了 React、Android 等技术,我被问及它们的生命周期方法和其他一些杂项概念。我可以回答与我的项目相关的大部分问题,并告诉他我在实习期间使用这些技术的经验。之后,我被问到 2 个编码问题。

  1. 我们的办公室有一个存储设施。 N个快递员存储在那里。此外,我们办公室外有一辆卡车,可以将这些快递员运送到另一个地方。卡车有一些容量,它可以承受最大 M 重量的快递员。所以快递员的重量是给定的。例如,[1, 10, 25, 35, 60] 以及卡车的容量:90。卡车想为自己预留 30 个单位。而且您只能选择 2 个快递员来装进卡车。答案应该是那 2 个快递员的索引列表。例如,[2, 3]
  2. 第二个问题是关于贪心算法的。在这个问题中,我们得到了 n 根一定长度的绳索。例如,[8, 4, 6, 11],我们需要最小化将所有这些绳索组合成一条绳索的成本。在这里,组合绳索的成本等于它们的一些长度。

第一轮结束后,剩下大约8人

第 2 轮(PI 技术):

这一轮从一些关于我的简历的讨论开始,比如我做过的实习和项目,之后我被问到一个简单的链表问题,其中如何检测链表中的循环。 https://www.geeksforgeeks.org/detect-loop-in-a-linked-list/ 。当我告诉他关于慢速和快速指针方法时,现在更进一步。他交叉质疑如果我们快速移动三步而不是两步,是否有可能检测到循环。我画了很多案例,但每次都可以检测到循环。所以我告诉他一个无法检测到的案例。因此,他进一步跳过了这个问题以证明这一点。 (提示:彻底理解循环的证明)。第二个问题是基于系统设计的,其中必须实现一个搜索栏,它可以根据输入某些字符时流行的搜索字符串给出多达 5 条建议。我必须设计一个可能的数据结构来有效地实现它。它必须使用后缀树来完成。但我只知道尝试。所以,我告诉他我们可以做些什么来提高搜索效率,并最终接近于后缀树方法,尽管我并不直接知道它。应该是这样的:https://www.geeksforgeeks.org/auto-complete-feature-using-trie/。面试官看起来对我的方法很满意。最后他问我是否有任何问题要问他。所以我向他询问了公司的所有工作以及他详细解释的所有可能的工作领域。

第二轮结束后,剩下大约5人

第 3 轮(PI 技术):

这一轮从另一个系统设计问题开始,我被要求设计一个亚马逊仓库,我必须尽量减少拣货和放置时间。假设我们有一些机器可以在仓库中移动这些物品。仓库可能有多个行,也可能有多个楼层。所以,我告诉他放置物品时要考虑的所有可能因素,例如物品是否易碎、重或经常购买等。还告诉他我们应该将相对较少使用的物品放在后面,将经常订购的物品放在前面.前面有重物,因为机器可能无法同时举起多个物品。此外,我们可以一次为不同的订单挑选商品。另外,我告诉他,如果是这样,我们将检查项目是否仅在行的末尾,然后我们可以跳过进入行。此外,我们应该以曲折的方式移动,以尽量减少拾取和放置的时间。他面无表情,让我对自己的解决方案感到紧张。 (提示:不要对系统设计问题感到紧张,没有正确或错误的答案。他们有时只是在检查您的创新思维。接下来,我被问到一个关于两个长度相等的列表可能未排序的问题,您可以从中交换元素两个列表在同一位置。我告诉他 O(n) 中的贪婪方法,但在某些极端情况下无法提供最小交换。所以,他告诉我使用动态编程,但求解复杂度仍然太高所以我们跳过了讨论。接下来,我被问到如何设计一个像google docs这样的文本编辑器,他们是如何实现同步的。所以我告诉他一些概念,比如Critical section,实现同步需要遵循的条件,然后进一步询问如何谷歌文档是否能够反映服务器端的变化。所以,我告诉他可能在服务器端有一个 LinkedList,其中插入了一个节点。我清楚地告诉他我没有做太多后端东西。福另外,我们再次讨论了gamekraft的工作和该组织可能的团队,以及那里使用的各种技术。

我们期待进一步的人力资源回合,但它没有发生,因为它变得很晚了。所以最后他们公布了结果。 4人被选中,我也是其中之一。我感谢 geeksforgeeks 为我的校园实习准备所做的贡献。