微软面试经历 |第 49 组(实习)
最近,Microsoft 访问了我们的 SDE 实习生校园。这个过程历时4个多月。
第 1 轮(在线 MCQ)
时间 - 30 分钟。
这是在 CoCubes.com 上进行的,大约有 25 个不同难度的问题。主题:C、C++、能力。
150名学生中约有60名入围下一轮。
第 2 轮(在线编码轮)
时间 – 90 分钟
- 这是在同一天进行的。数据结构有两个问题。
- 编写一个函数来检查给定字符串中的括号(“( )”、“{ }”、“[ ]”)是否平衡。
GeeksforGeeks 链接 - 编写一个递归函数,从两个给定的链接列表中创建一个列表,其中包含给定列表中存在的元素的交集。
37名学生入围下一轮。
第三轮(电话面试)
- 时间 - 33 分钟
- 我被要求自我介绍。
- 然后有几个关于我正在从事的项目的问题。由于我的项目是在Java作为前端,oracle 作为后端,所以我被问到关于多线程和 sql 的几个问题。
- 然后我被要求解释以螺旋形式逐级遍历二叉树的逻辑和代码。
GeeksforGeeks 链接 - 二叉搜索树中最低共同祖先的逻辑和代码。
GeeksforGeeks 链接 - 上述代码的复杂性以及为何如此复杂。
- 我被问到有关操作系统的问题-
- 区分互斥锁和 semafore 变量?
- 线程和进程有什么共同点?
- 什么是死锁?
- 关于 C++ 的问题很少。
- 多态性和运行时多态性。
- 什么是虚拟析构函数?
有人问我是否有任何疑问,我问了实习生将在微软做的工作,面试结束了。
只有 9 人入围了进一步的面试。我有幸成为他们中的一员。
我们被叫到海得拉巴的微软印度开发中心。
第 4 轮(技术)
时间 - 35 分钟
- 采访从我的介绍开始。然后对我的项目进行了长时间的讨论。他告诉我项目中的缺陷,并让我告诉我将如何处理它们。
- 给定两个整数数组(以随机顺序),您将如何确定元素的等级。
For ex: let the two arrays be 46 32 16 73 57 2 and 86 7 98 3 75 rank (46) = 6 rank (86) = 10 rank (2) = 1
我不记得确切的问题,但它与此类似。相当简单。我提出了一些方法,并且希望我能提出最好的方法。
然后我被要求编写我的解决方案并为此设计测试用例。 - 有人问我最喜欢的科目。
- 编写并解释在二叉树中连接同一级别节点的代码。
第四轮过后不久,我们中的一些人被要求进入下一轮。
第 5 轮(技术)(30 分钟)
- 给定一个 Y 链表。找到交点处的节点。
- 给定一个包含小写字母和大写字符的字符串。找出每个字符出现的次数。
该问题被进一步修改以包括特殊字符。我被要求设计相同的测试用例。 - 从给定的字符串中删除重复的字符,只保留第一次出现(即顺序不应该改变)。例如,如果输入是“bananas”,则输出将是“bans”。
https://www.geeksforgeeks.org/remove-all-duplicates-from-the-input-string/(第二种方法)。我们五个人被要求参加下一轮。
第 6 轮(HR)(30 分钟)
- 有这样的问题-
- 简要介绍一下你的学术历史。
- 你目前正在从事的项目,你为什么选择这个?
- 您可以在项目中做哪些改进?你是在教授手下工作还是只是出于兴趣?
- 你的同龄人会如何形容你?
- 你的教授会如何描述你,你的弱点是什么?
- 你是如何尝试改进的?
- 是什么让你保持动力?
- 您的短期和长期目标是什么?
- 为什么选择微软?
还有一些我现在不记得的其他问题:p
这是最后一轮。它进展顺利。体验很棒,我发现那里的人非常谦虚,我真的很喜欢他们乐于助人的态度。
一些面试技巧——
- 保持冷静、自信并保持积极性。
- 说实话。
- 尽量保持你的方法干净,不要弄乱你和面试官的想法。
- 不去想结果,只管自由地享受面试过程😀
- 专注于建立强大的概念。
非常感谢 GeeksforGeeks 为面试准备提供了如此出色的平台。保持良好的工作🙂
微软的所有练习题!