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

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

在线编码回合:

    这一轮是在 Cocubes 上进行的。有 3 道编码问题,分配的时间为 75 分钟。有各种各样的问题。我的问题是:
  1. 给定一个字符串,任务是找到字符串中字符的 ASCII 值的平均值。
  2. 内嵌评估。
  3. 二叉树的表亲和。

    其他问题是:

  4. 下一个最小的回文。
  5. 给定一个包含 n 个数字的字符串形式的数字。找到 m 次删除后的最小字符串。
  6. 以给定大小的组反转链接列表

第二轮:

    这一轮是笔纸轮。问题包括7个基于C和数据结构的简答题,还有一个编码问题。所有的短问题都是必填的。

  1. https://www.geeksforgeeks.org/detect-and-remove-loop-in-a-linked-list/

    简短的问题很容易,只需仔细阅读问题🙂,因为可能会出现愚蠢的错误。

面试一:

    在这一轮中,我问的问题是:
  1. 在一个数组中实现三个堆栈,以便充分利用空间。
  2. 我得到了一个最小堆,并被要求编写代码以将其转换为最大堆。(我必须编写一个干净的代码并在给定的堆数组表示上干运行它);
  3. 我得到了一个数字的 2 的互补二进制表示,我不得不将它转换为十进制。

    在那之后,关于数据结构的正常问题被问到像构建堆并证明它的摊销时间。

采访二:
这是我最喜欢的一轮,所以我想详细说明一下。在这一轮面试官问我之前面试都问了什么问题,我最喜欢的数据结构,我回答树,然后我为什么喜欢树等。基本问题树木。

  • 然后我被要求实现一个文本编辑器(从给定的文本文件中删除或插入任意数量的字符串后,基本上最佳地执行模式搜索)。这一轮完全围绕这个问题。

    起初我从一个蛮力解决方案开始,只是搜索从每个索引位置开始的模式。我被要求为此编写代码。此外,我建议使用 KMP 算法搜索。但是面试官想要的不是已经存在的算法之类的东西,还问我是否可以进一步优化它。一段时间后,我想出了构建后缀树,因此搜索时间只是减少到字符串的长度,但在最坏的情况下空间复杂度很大,每次插入或删除后我都必须再次构建整个树。面试官对此印象深刻,但要求我进一步优化它。后来我想用含有为每个字符的一组的结构来实现它,并存储在该组中的每个字符的occurence的索引和建议运行DFS用于搜索图案(因此,空间复杂度降低到O(N))。面试官对我尝试的方法印象深刻。后来他问我有什么问题要问他。

    提示:无论复杂性如何,始终讨论您想到的第一个解决方案,然后继续考虑优化的解决方案。

    采访三:

    这是最后一轮。我被要求自我介绍。然后我的兴趣是什么,我想在未来看到什么,我的成就等。

  • 然后我被问到基于C/C++的问题。比如OOP的基本特性(一个可以使用继承的真实例子),函数和宏的区别(基于宏给了我一个程序,我必须找到什么输出将是 ). 类型的多态性。
  • 编码问题被问到,我必须给出逻辑(不需要代码)。其中我知道一个以前的问题,所以我告诉他我知道,他改变了问题。
    问题之一是在排序和旋转的数组中找到一个数字。

    后来他问我有什么问题要问他。

    6 名学生实习,我就是其中之一。

    提示:在整个面试过程中保持诚实面试官只是想看看你是如何处理一个未知问题的,所以不要认为我的解决方案太复杂了。不管你在想什么,都和面试官讨论。一些学生也被问到谜题(你可以在 geeksforgeeks 谜题部分找到样本)。

    谢谢阅读 。

    @sid 🙂