亚马逊面试经历 |设置 330
我最近在班加罗尔为 AppStore 团队接受了 Amazon SDE-I 角色的面试。
在线测试(黑客地球):
- 给定一个数字 N,如果它是质数,则必须打印“Prime”,如果不是,则必须打印“Not Prime”。
- 给定一个字符串S,打印其中的位数和英文字母的数量。
eg Input = "a5$&45NdG" Output = 3, 4
- 给定一个单词列表,按照字典顺序打印它们,给定以下优先级。
a) 如果两个单词拼写相同,小写字符优先。
b) 单词中可以有空格。空格比任何字母都具有更高的优先级。eg : Input = ["funny" , "fun", "fuNny"] Output = ["fun", "funny", “fuNny”]
我无法完全解决第三个问题。得到部分分数。
第1轮 :
- 给定一个大数(最多可包含 10^5 位数字),找出可被 8 整除的子字符串的数量。子字符串不能以 0 开头,除非它只是 0。
例如:输入 = 10888,输出 = 9 {0, 8, 8, 8, 88, 88, 888, 1088, 10888}
最初,我给出了一个遍历所有子字符串的蛮力 O(n^2) 解决方案,然后提出了 O(n) 解决方案。 - 这个问题有点含糊。它最终归结为查找数组中不同元素的数量。
我使用 HashMap 给出了解决方案,他很满意。
第 2 轮:
- 找出岛屿的数量
我使用 dfs 给出了解决方案,他让我实现它。我编写了解决方案,但没有跟踪访问过的单元格,我的解决方案陷入了无限循环。他指给我看,我更正了。 - 重新排列字符中的字符串,使得没有两个相邻的字符相同
我给了他一个解决方案,我从空字符串开始,在每个步骤中我选择最常见的字符并添加它。我还检查我添加的字符是否与前一个字符相同。他对我的方法很满意,没有让我写代码。他说这个问题是为了测试解决问题的能力。 - 二叉树的顶视图
他问我有没有遇到这个问题,我说没有。我使用 bfs 给出了解决方案,但我使用了不必要的 HashMap。他让我考虑使用更简单的数据结构。我有点挣扎,但最终想出了设置来存储元素。
第三轮(管理):
- 说说你自己。
- 告诉我一个你和你的经理发生冲突的情况。
还有更多的行为问题。 - 关于亚马逊产品目录的 DBMS 问题。我不知道如何处理这个问题。她问我是否知道任何 DBMS 概念,我说“不”并告诉她我来自非 CS 背景。
总的来说,我对这一轮感觉不太好,我的信心也很低落。幸运的是,我的前两轮很顺利,他们决定再给我一次机会,让我参加另一次编码面试。
第四轮:
- http://stackoverflow.com/questions/2473114/how-to-find-sum-of-elements-from-given-index-interval-ij-in-constant-time
起初,我使用段树 (overkill) 给出了一个解决方案。他让我想一个简单的解决方案。然后我想起了我们保留一个辅助数组来存储累积和的解决方案。然后可以在恒定时间内回答查询。 - 最长 K 个唯一字符子串
我之前已经解决了这个问题,我立即告诉他使用两个指针的解决方案。
第 5 轮(管理):
- 说说你自己。
- 您遇到的最难的错误是什么。你怎么修好它的。
还有更多的行为问题。
- https://www.careercup.com/question?id=64946
这是一个面向对象的设计问题。我在参加“Cracking the coding interview”一书中的面试之前练习了这些类型的问题,并且在面试过程中感觉很舒服。与第一轮管理相比,这很顺利。
亚马逊的所有练习题!