📜  亚马逊面试经历|设置 414(用于 SDET-1)(1)

📅  最后修改于: 2023-12-03 15:06:23.172000             🧑  作者: Mango

亚马逊面试经历|设置 414(用于 SDET-1)

前言

我是一名 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
第三轮

第三轮面试是一轮行为面试,主要测试个人素养和团队合作能力。

第四轮

第四轮面试是管理面试,主要测试团队领导力和项目管理能力。

总结

以上就是我参加亚马逊公司的面试过程和面试题目。面试过程中遇到的问题需要认真分析和思考,寻找最优算法和优化方法。希望以上面试经历对大家有所帮助。