微软面试经历(2019年暑期实习)
微软来到 IIIT Hyderabad 进行校园实习。该公司访问了 2 个简介:SWE 和数据科学家。
第一轮(在线编码轮)
对于 SWE 的角色,在 cocubes 上有一个通常的编码轮。我们有 75 分钟的时间来解决 3 个编码问题。问题如下:
- 要附加到字符串以使字符串成为回文的最小字符。(仅在字符串末尾附加字符)您需要打印需要在末尾附加的字符。 (与此类似:制作字符串回文所需的最小附加数 – GeeksforGeeks)
- 给定一个 2D字符矩阵,您需要找出给定单词在矩阵中存在多少种方式,需要返回最终计数。在矩阵中查找单词时,可以仅使用相邻单元格组成单词。
- 输入一个字符串/单词,您需要在字典中找到它的排名。(具有重复字符的字符串的字典排名 – 字符串 )测试用例不够好,您可以猜测是否包含重复的字符并不是。我提供的链接也考虑了重复字符。
第二轮(也适用于申请ML / Data Scientist profile的人)
这是一个 MCQ 测试。 49 个问题,评分:+4 表示正确,-1 表示错误答案。给出的时间是75分钟。测试包括概率问题、机器学习算法(如 SVM、梯度下降、协作过滤/基于内容的过滤、神经网络等)。我入围了 ML/数据科学家简介。近 200 名学生中共有大约 65 名学生(不确定确切人数可能更少或更多)入围这两个配置文件。 ML 25,SWE 休息。
这是一个 MCQ 测试。 49 个问题,评分:+4 表示正确,-1 表示错误答案。给出的时间是75分钟。测试包括概率问题、机器学习算法(如 SVM、梯度下降、协作过滤/基于内容的过滤、神经网络等)。我入围了 ML/数据科学家简介。近 200 名学生中共有大约 65 名学生(不确定确切人数可能更少或更多)入围这两个配置文件。 ML 25,SWE 休息。
第三轮(组飞)
我们被分成 10 人一组进行这一轮比赛。一轮是1小时。我们需要在纸上编写 2 个问题的代码,并提交给分配给每个小组的导师。问题是:
我们被分成 10 人一组进行这一轮比赛。一轮是1小时。我们需要在纸上编写 2 个问题的代码,并提交给分配给每个小组的导师。问题是:
- 在给定的字符串中找到最大的子字符串,它是一个回文(最长回文子字符串 | Set 2 – GeeksforGeeks)。
- 以螺旋顺序遍历矩阵(以螺旋形式打印给定矩阵 - GeeksforGeeks)。
本轮过后,有30人入围下一轮。
第四轮(面试 1,最多 45 分钟 - 1 小时)
这一轮从我对面试官的介绍开始。她真的很好。然后她问了我一些关于我的荣誉项目的问题,然后是一个编码问题。我需要编写完整的代码。
这一轮从我对面试官的介绍开始。她真的很好。然后她问了我一些关于我的荣誉项目的问题,然后是一个编码问题。我需要编写完整的代码。
- 问题是:给定一个大小为 n 的数组,我需要将它旋转 m 个位置。(数组旋转程序 - GeeksforGeeks)我需要提供最优化的方法,即用最少的额外内存。
- 在第二个问题中,我需要为大小为 m*n*o 的 3D 数组分配内存。需要通过指针和malloc来完成。
- 为数组旋转的第一个问题提出一些测试用例(边缘/角落)。
本轮过后,有21人入围第二轮。
第五轮(面试 2,最多 1-1:15 小时)
这次面试从直接的编码问题开始。问题是:
这次面试从直接的编码问题开始。问题是:
- 找到运行数字流的中位数。此外,询问是否可以将 AVL 树用于此目的而不是堆。(使用 STL 的运行整数流的中位数 – GeeksforGeeks)我需要为此在纸上编写代码。
- 这是一个DP问题。给定一个 2*1 的小板,我需要找到填充更大的 2*t 板的方法(类似于:平铺问题 – GeeksforGeeks)。其他一些问题建立在它之上:
- 可以对称填充较大板的方式数。
- 可以不对称填充较大板的方式数。不能只说它是完全对称的,需要得到一个递归关系😛。
- 最后他问了时间复杂度,建议的解决方案是O(n),他帮我找到了解决方案。
在这一轮之后,15-16进入了最后一轮。
第六轮(面试3,最多1小时-1:30小时)
这一轮只问了一个问题。就是这样:给定一个最终的井字游戏板,我需要判断它是否有效。您不能假设 x 首先播放的任何内容。如果对于任何一种情况,即“x”先出或“o”先出,如果棋盘有效,则答案应该有效。我需要在纸上写下完整的代码。在接下来的 15-20 分钟内,我们得到了结果。我被选为 ML/数据科学家角色。总共有 5 个(包括我)ML 和 10 个 SWE 角色进入实习。这是我一生中最快乐的时刻之一。
这一轮只问了一个问题。就是这样:给定一个最终的井字游戏板,我需要判断它是否有效。您不能假设 x 首先播放的任何内容。如果对于任何一种情况,即“x”先出或“o”先出,如果棋盘有效,则答案应该有效。我需要在纸上写下完整的代码。在接下来的 15-20 分钟内,我们得到了结果。我被选为 ML/数据科学家角色。总共有 5 个(包括我)ML 和 10 个 SWE 角色进入实习。这是我一生中最快乐的时刻之一。
编码回合的一些提示:
特别是对于 MS,编码回合是在 cocubes 上进行的,因此该站点不会在所有测试用例上运行您的代码。确保您编写了最有效的代码。我的一些甚至解决了 2 的朋友都没有被选中,因为他们的代码可能没有通过最终的测试用例。对于 MCQ 回合,如果您不能做任何或很多,请尝试所有。
特别是对于 MS,编码回合是在 cocubes 上进行的,因此该站点不会在所有测试用例上运行您的代码。确保您编写了最有效的代码。我的一些甚至解决了 2 的朋友都没有被选中,因为他们的代码可能没有通过最终的测试用例。对于 MCQ 回合,如果您不能做任何或很多,请尝试所有。
面试回合的一些技巧:
- 对你回答的任何问题都充满信心。即使你知道答案并不完全正确,也不要像你可以告诉面试官那样,它并不完全正确。
- 如果您有时遇到困难,请询问面试官您的方法是否正确。
- 在整个过程中与面试官保持对话,不要沉迷于自己。对于你在纸上写的每一行代码,解释你为什么这样做。
感谢 geeksforgeeks 团队将这么好的内容放到网站上。我建议在网站上解决问题,因为它可以改善思维和方法。它在每件事上都对我有很大帮助,无论是主题、编码问题还是练习问题。