📜  微软面试体验(校内实习)

📅  最后修改于: 2021-11-17 09:57:45             🧑  作者: Mango

在线编码回合:

它是在 Cocubes 上进行的。在 75 分钟内有 3 个问题需要解决。我的问题是:

  1. 给定一个字符数组,求该数组中 ascii字符的平均值。例如:- i/p = ab12,o/p = 73.5(2 分)
  2. 评估给定的中缀表达式(作为字符数组)。例如:- i/p = 4-5*14/7+2,o/p = -4(3 分)
  3. 通过从给定数字中删除 k 位来找到可能的最小数字。例如:- i/p = 4312389,k=3,o/p = 1238(5 分)

在 200 名学生中,大约有 60-65 名被选中参加纸笔比赛。获得5分以上就足以通过这一轮。关于cocubes,它是一个简单的ide,只能测试编译错误的代码和很少的基本测试用例。我们无法运行自定义测试用例的代码,但您当然可以修改输入字符串进行检查。

笔纸轮:

本轮包括 7 道短题(基于 C 语言),每道题 3 分,一道编码题 6 分。编码问题是从链表中检测和删除循环。所有的问题都是强制性的。大约 24 名学生向前迈进了面对面的个人面试。

第1轮:

面试官翻了翻我的简历,问了一些 OOP 的问题,比如虚函数和析构函数是什么,new 和 malloc 的区别。然后如何释放内存以及组合 :- (new and free) 和 (malloc and delete) 会发生什么。然后他问了我两个编码问题:

  1. 给定一个二叉搜索树,将其转换为双向链表。他让我写一些测试用例。
  2. 给定一个按行排序的 n*n 矩阵,以非递减顺序打印矩阵的元素。允许 O(n) 的空间复杂度。我用 min-heap 来解决它。

对于问题,请尝试 1st 告诉您的方法并使用测试用例来试运行您的方法。然后在被问到时开始编写代码。

第二轮:

有人问我 :

  1. 有两条平行线。一条线有n个点和其他m个点。点以锯齿形方式相互连接。找到交叉点的数量,即连接的交点。类似于这个问题 – https://www.geeksforgeeks.org/counting-cross-lines-array/
  2. 给出了一组 N 个矩形,每个矩形的边与 x 轴和 y 轴对齐。给出了另一个矩形,我必须检查集合中有多少个矩形完全位于新矩形内。我们可以沿 x 轴和 y 轴对集合进行排序,并使用 4 次二分搜索找到矩形的个数。
  3. c++ 和Java的异常处理。

选定的学生又进行了一轮比赛。共选出6名学生。