SDE-III(2022)的沃尔玛面试经验
我通过 LinkedIn 和 Naukari.com 申请。不知道我的简历是从哪里拿到的,但我接到了 HR 的电话。
Round 1 (DS Algorithm: 1 our):(1个编码问题,编码问题增强, Java讨论)
- 实现2个方法:boolean addString(字符串), List
searchString(字符串) - addString:将该字符串添加到 db
- 搜索字符串将返回以该字符串开头的字符串列表
eg: add : XX, XXY, XXX, YYX and on search(X) --> [XX,XXY,XXX]
预期时间复杂度:搜索 -> O(1), 添加 -> O(m) : m 为添加字符串的长度
解决方案:我使用 map add(xx) 实现:x -> [xx], xx -> [xx] || add(xxy) : x->[xx,xxy], xx-> [xx,xxy], xxy->[xxy] 等。
2. 作为一项改进,我被要求使添加和搜索不区分大小写。然后他要求进行上述方法的应用程序级设计(只是要求方法)。 –> 我认为他期待单例设计模式,但我使用全局Java变量进行了解释。 (他对此没意见)
3. 有一些时间,所以他询问了一些简单的Java字符串函数。
第 2 轮(LLD:低级设计 45 分钟):
- 我被要求为一所大学设计一个宿舍管理系统。它们之间的所有类和链接。我使用地图设计它们。他希望使用继承来使其更通用和可重用。所以我在设计上做了一些改动并添加了这些。我猜他对此很满意。
第 3 轮(DS 算法:1 小时):(2 个编码问题,关于各种 DS 的一般性讨论):
- 实现在二维数组中查找岛屿数量:https://www.geeksforgeeks.org/find-number-of-islands/,它是摊销复杂性分析。
- 在树中实现打印路径:https://www.geeksforgeeks.org/given-a-binary-tree-print-all-root-to-leaf-paths/ 这是复杂性分析。
- 还剩一些时间,所以她开始问这样的问题:
- BST 在正常二叉树上的 e 是多少
- 你在哪里可以找到现实世界的问题,比如寻找岛屿问题?
- 你认为我们在现实世界中在哪里使用 BST。
- 什么是自平衡树以及我们为什么需要它们。 AVL 树的工作原理。
- 什么是 B-tree,我们在现实世界中的什么地方使用它们。还有一些,直到我们有时间。
第 4 轮(招聘经理:45 分钟):
- 从我目前正在研究的简要介绍和技术堆栈经验开始。
- 它不知何故变成了“所以你的意思是 J-unit 覆盖应该比新代码开发更优先?”,
- “你认为 stash 是如何显示所有代码气味的?”,
- “当我说设计模式时,你首先想到的是什么?”。
以及更多问题和讨论。这真的很有趣。