📅  最后修改于: 2023-12-03 15:06:23.172000             🧑  作者: Mango
我是一名 SDET-1 应聘者,我参加了亚马逊公司的面试。以下是我的面试经历和面试题目。
面试共分为 4 轮,其中第一轮为在线代码挑战。下面是我在每轮面试中遇到的问题和解答。
第一轮面试是在线保存代码的挑战,主要测试编写代码的能力和代码风格。我遇到了下面这个问题:
题目:写一个程序,将一个字符串中的所有空格替换成%20。你可以假定输入字符串的长度足够大,以便替换后的字符串会占用原来字符串的空间。
示例:
输入:"We are happy." 输出:"We%20are%20happy."
思路:采用双指针法,遍历原字符串,每次遇到空格,就在新字符串中添加"%20",否则直接添加字符即可。
代码片段:
class Solution:
def replaceSpaces(self, s: str) -> str:
res = ''
for i in s:
if i == ' ':
res += '%20'
else:
res += i
return res
第二轮是面试官面对面进行的技术面试,主要测试编码能力和代码实现能力,以下是我的面试题目:
题目:给定一个二维矩阵,将所有零元素所在的行和列清零。
示例:
输入:
[ [1,1,1], [1,0,1], [1,1,1] ] 输出:
[ [1,0,1], [0,0,0], [1,0,1] ]
思路:遍历原矩阵,如果遇到元素为0,则将对应的行和列全部置为0。
代码片段:
class Solution:
def setZeroes(self, matrix: List[List[int]]) -> None:
"""
Do not return anything, modify matrix in-place instead.
"""
# 标记需要置为0的行和列
m, n = len(matrix), len(matrix[0])
rows, cols = set(), set()
for i in range(m):
for j in range(n):
if matrix[i][j] == 0:
rows.add(i)
cols.add(j)
# 将对应的行和列置为0
for i in range(m):
for j in range(n):
if i in rows or j in cols:
matrix[i][j] = 0
return matrix
第三轮面试是一轮行为面试,主要测试个人素养和团队合作能力。
第四轮面试是管理面试,主要测试团队领导力和项目管理能力。
以上就是我参加亚马逊公司的面试过程和面试题目。面试过程中遇到的问题需要认真分析和思考,寻找最优算法和优化方法。希望以上面试经历对大家有所帮助。