📜  微软面试经验(2-3年经验)

📅  最后修改于: 2021-09-23 05:14:06             🧑  作者: Mango

第 1 轮:在 Microsoft Noida Office 进行的面试前 1 周,我接到了其中一家招聘公司的电话。第一轮是笔试,我们有 2 道编码问题,时间是 45 分钟。我们必须在纸上写代码。

1.) 给定参观公园的人的开始和结束时间,找出任何时间点的最大人数。

开始时间 结束时间

8:30 9:00

8:45 10:00

9:00 11:00

9:15 11:00

https://www.geeksforgeeks.org/find-the-point-where-maximum-intervals-overlap/

2.) 给定 3 种对象的流,比如 ObjectType ob1、ob2、ob3,将它们排列成相等的对象彼此相邻或聚集在一起。给定一个 compare()函数,如下所示:

int 比较(对象类型 ob1,对象类型 ob2);

= 0 如果 (ob1==ob2),

=1 if(ob1>ob2),

=-1 if(ob1

第二轮:

经过 15-20 分钟的评估,我被要求进行 F2F 面试。

1.)关于当前项目的讨论,他问了我几个关于如何托管 Web 服务的问题,我们如何处理大量传入请求,为什么我们不在云上托管它等等。

然后他让我设计一个在任何时间点都返回最小元素的堆栈。我向他解释了下面的解决方案为其编写了完整的代码。他主要检查我使用的极端情况和错误处理机制。

https://www.geeksforgeeks.org/design-a-stack-that-supports-getmin-in-o1-time-and-o1-extra-space/

此外,他让我编写所有测试用例,以及我将如何测试我的设计,我将如何对我的函数单元测试。接下来,他让我将类设为 Generic。

他又问了一个编码问题:

以 k 为一组反转链表。

https://www.geeksforgeeks.org/reverse-a-list-in-groups-of-given-size/

在简短的生产级代码中编写涵盖所有测试用例的干净代码非常重要。

第 3 轮:

1.) 详细讨论当前项目。

2.) 写一段代码来判断一个字符串是否是回文。

3.) 写一段代码来找出给定字符串的任何排列是否可以形成回文。我首先计算每个字母的频率,并根据偶数和奇数长度回文返回输出。后者应包含一个具有奇数频率的字母。

4.) 编写一个代码来找出字符串的哪种排列会导致回文。

首先创建给定字符串的所有排列,然后检查哪个是回文。

5. 设计一个将在应用程序上显示的挂钟。随着时间的变化,针应该相应地对齐它们的位置。

我为 Clock、Needle 类创建了一个类图以及它们之间的关系。他问我将使用哪些功能、设计模式、是否使用继承或组合以及为什么?

第 4 轮:

这是招聘经理回合,他首先问我前几轮进展如何,我告诉他我在哪些方面做得很好,哪些地方可以做得更好。他让我优化我在书面回合中解决的编码问题

其中预期复杂度为 O(N)。

然后他问了我一个编码问题,我必须在 BST 中找到不应该遍历整棵树的第二大元素。

https://www.geeksforgeeks.org/second-largest-element-in-binary-search-tree-bst/

我必须用正确的语法编写完整的代码,并在不使用全局变量的情况下覆盖所有测试用例。

他就我简历中提到的技能问了我几个问题。为什么 JavaScript 更好,我们可以在 JavaScript 中同时运行两个函数。继承和组合的利弊是什么我不得不举个例子。关于这个话题的很多讨论,他给了我关于这个的真实生活场景。

他进一步问我为什么要换工作,为什么要换微软?

这轮过后,HR告诉我,我被选中了!! 🙂

感谢 GeeksForGeeks 在我的准备过程中帮助了我。