微软采访 | 13
微软主要有 2 次笔试,然后是 2/3 面试,包括 HR 轮次。
第一次在线笔试:这次笔试很简单,只有C/C++(简单题)和一些操作系统和微处理器题,总共20题。
第二次在线测试:在第二轮中,有两个代码问题(他们为我们提供了编辑器,Pariksha Lite)
- WAP 打印给定字符串的最后 10 行。如果字符串少于 10 行,则打印整个字符串,行由 '\n' 分隔。 [答。有两个应用程序。 (i) 自上而下 (ii) 自下而上(这是有效的)]
- 给出一个二叉树,打印节点值,逐级由'\n'分隔 [Ans.水平顺序遍历]
第一次面对面面试
我的面试很好,以下问题被要求我做。
- WAP 打印给定字符串中的第一个唯一字符,确保您的程序也应在所有极端情况下运行。 {回答。很简单,使用哈希和计数方法,时间和空间复杂度是O(n)和O(1)}
然后他告诉我你将如何测试你的程序,然后是测试用例。 - 给你一个 nxn 的方形网格,你需要按顺时针方向打印圆形。
for example 12 45 then output : 1254 123 456 789 then output: 2684
[答。使用两个连续的循环很容易编码。看看类似的问题“Print element of matrix in Spiral Form”,参考 Geeksforgeeks]
- 关于新技术的一些问题,你感兴趣。
第二次面对面面试
关于我的项目的一些问题,比如你做了什么,为什么选择这个项目,你将如何增强你的项目等。
然后他问了我一些谜题和能力问题。
- 给你一个罐子,里面有 99% 的黑球和 1% 的白球,从罐子里抽出一些黑球,剩下 98% 的黑球和 2% 的白球。你抽了多少个黑球?
[答。假设总共有 N 个球,所以黑色(b)= 99N/100 和白色(w)= N/100 在绘制“x”个球后,白色的百分比增加到 2%,所以 N/100 = 2*(Nx) /100 => x = N/2 ,所以画半个黑球]。 - 10:30 时针和分针的夹角是多少。 [ 你能行的 ]
- 谜题:你有两个鸡蛋和100层楼;找到两个鸡蛋都破掉的顶层。
- WAP 逐字反转给定的字符串。
Ex. Given string is "Hey hi how ru ?". then print "? Ru how hi hey".
测试你的程序的极端情况。为您的代码编写测试用例,如果给定的字符串太长而没有用给定内存中无法容纳的空间分隔会发生什么。 【简单回答】
- 将单双排序链表转换为 BST 并对其进行优化。
[可以在 O(nlog(n)) 和 O(n) 中求解]
第三轮面试(决赛)
这一轮是HR轮和技术轮的结合。
- 他从一些一般性的问题开始,比如关于我,你感兴趣的领域是什么,你的目标是什么,你为什么想加入微软等等。然后他问我你对哪个领域充满热情,我告诉他 DS、Algo、C/ C++ 和操作系统。然后他问我你喜欢/知道哪个操作系统,然后他问了我一些与之相关的问题。 (大约 5 个问题,他们真的很难)。
- 他还问了我关于 Windows 服务器版本的问题(一些深刻的问题)。
然后他给出了以下 DS、Algo 问题。
- Wap 查找从根到任何叶的路径,使得总和等于给定总和。
{回答。很容易做到,使用根到叶路径的逻辑}。休息我忘记了。。
微软的所有练习题!