亚马逊面试经历 | 194(软件支持工程师)
这是亚马逊招聘网站上常见的求职申请,几天后我接到了他们的电话。
过程:- 1 书面能力(编码)+ 3 技术回合 + 1 人力资源回合
1) 一项笔试– 8 个问题陈述 – 1 小时时间 – 从初级到中级难度,我们必须为此编写逻辑/算法
我记得有一些足够好是——
i) 给定目录结构中的文件夹路径。例如“温度/注册”;您需要在此文件夹以及子文件夹中找到所有扩展名为“.c”的文件。
ii) 在给定的字符串中找到最长的回文子字符串。
iii) 从给定的字符串中,打印在字符串中出现多次的字母。
iv) 给定两个整数 A 和 B,打印要翻转的位数,以便将“A”转换为“B”。
v) 使用 Stack DS 的 Push() 和 Pop() 实现 Queue DS 的 EnQueue() 和 DeQueue()。写出步骤和顺序。
可能的解决方案:-(逻辑)
i) 使用链表 DS 将文件夹路径存储在节点中。打开带有第一个节点的文件夹,过滤所有“.c”扩展名文件,并将子文件夹添加到链表中,直到浏览完链表中的所有节点。
ii) 使用 'frame' 变量,其值从 2 开始,增加直到大小 'n',并通过将该帧移动一个位置来检查子字符串是否为回文。
iii) 基本 Char 到 ASCII 转换并返回字符。为字母创建一个包含 26 个插槽的数组。在继续之前将输入字符串转换为大写。
iv) 转换为二进制表示并比较为字符串字符。如果不相同,则增加计数器。请记住,我们必须只显示翻转的位数。
v) 将操作逻辑用于优先队列,并用于 –
a) EnQueue – 将所有内容推送到 Stack1。
b) DeQueue –(检查 Stack1 是否不为空)从 Stack1 中弹出所有内容,并将它们一一推送到 Stack2。然后从 Stack2 中弹出顶部元素作为结果。对于 Next DeQueue 进行反向操作,即从 Stack2 到 Stack1。
2) 第一轮技术
i) 编写程序来反转链表。
ii) 讨论场景和调试/排除错误。
3) 第二轮技术
i) 类似的调试/故障排除场景。
ii) 添加字符串中的数字并显示。
例如“abc123def-567ghi89jk”
这里以'-'作为负数符号。
iii) 在有序数组中找到总和值为“k”的数组元素对。使用二分搜索将其从复杂性“N^2”优化为“NlogN”。
4) 第三轮技术+管理
i) 一些与操作系统相关的问题。
ii) UNIX 命令——我不记得了!
iii) 项目经验以及为什么要加入亚马逊和类似的。
尽管我无法通过第三轮,但总体体验还是不错的。
## 记住:-
—————————
>> 请检查他们的技术要求,并修改您的操作系统(进程如何工作、进程生命周期、RAM、虚拟内存、死锁等)、UNIX(修改“grep”等基本命令)的概念。
>> 练习基本问题,如搜索、排序、斐波那契、阶乘、递归、堆栈、队列、链表及其应用。
希望对新入职者有所帮助!