📜  微软面试经验|设置178(IDC在校实习)

📅  最后修改于: 2021-05-24 23:49:50             🧑  作者: Mango

总共进行了3轮。第一个是在线编码,第二个是书面编码,最后一轮分为三个部分,主要是3个技术面试。

第1轮:

在CoCube上的在线测试包含3个编码问题(仅函数需要完成)。给出的总时间为75分钟。

  1. 查找字符串中所有字符的ASCII值之和的平均值。
    例子:
    Input : swati
    Output :110.4
    
    LOGIC:  (115+119+97+116+105)/5= 110.4 

    GeeksforGeeks链接

  2. 评估中缀字符串的值。字符串将没有任何空格或方括号,并且’*’和’/’的优先级大于’+’&’-‘的优先级。

    例子:

    Input : 5+10/2*6-3
    Output :32
    
    LOGIC: 5+5*6-3 = 5+30-3 = 35-3 = 32

    GeeksforGeeks链接

  3. 给定一个BST,一个最小值和一个最大值,请删除数据小于最小值和大于最大值的BST的节点。
    例子:
    Input :
                        10
                     /      \
                  8           13
               /            /     \
             2           11        15
           minValue= 3   maxValue= 13
    
    Output :
                       10
                     /    \
                    8      13
                          /
                        11
    

    GeeksforGeeks链接

在线回合很容易,因为他们正在寻找学生的基本概念是否清晰。共有109名学生参加了在线比赛,其中31名有资格参加下一轮比赛。

第二回合

笔试有2个问题,总时间为45分钟。

  1. 给定一个数组和一个键,您需要旋转数组元素“键”次。
    例子:
    Input 1:  arr[]= [1, 2, 3, 4, 5, 6]
    
    key=2
    
    Output : [ 3, 4, 5, 6, 1, 2]
    
    Input 2 : arr[]= [1, 2, 3, 4, 5, 6]
    
    key=24
    Output : [1, 2, 3, 4, 5, 6] 

    GeeksforGeeks链接

  2. 给定一个字符串,您需要打印其所有子字符串
    按照字典顺序。
    例子:
    Input :  ABC
    Output : A AB ABC AC ACB B BA BAC BC BCA C CA CB CAB CBA 

    GeeksforGeeks链接

编写大量注释以使您的程序越来越可读。确保您的工作整洁,并尝试编写最优化且占用最少空间的代码。但是,如果优化的代码不起作用,您就可以编写可以想到的逻辑。在本轮比赛之后,有14名学生被选为第三轮比赛。

第三回合

此回合分为3个技术面试。

技术面试1:

  • 主观问题:
    1. 如何实现虚拟析构函数?
    2. 遍历数组或链接列表哪个更好?
    3. 递归和函数循环有什么区别?
    4. 您认为可以在MS Word中添加或修改哪些功能?
    5. 堆栈的实际用途。
  • 编码问题:
    1. 给定十进制数字,将其转换为等效的罗马数字。
    2. 给定数组中的前n个自然数,可以说缺少一个数。编写代码以查找丢失的号码。
    3. 给定数组中的前n个自然数,现在可以说缺少两个数。编写代码以查找丢失的数字。

当我从OOP收到第一个问题时,我对采访者说了实话,我尚未研究OOP,并请他向Data Structures提出问题。最后,他问我是否对他有任何疑问,因此我请他对我作为他们公司的候选人进行审查,以及我需要学习和改进哪些概念。除了这些问题之外,我们还进行了一次关于我的大学的对话,他想向所有渴望在任何MNC(不一定是Microsoft)中从事技术工作的学生提供什么建议。

技术面试2:

  • 一般的问题:
    1. 为何Microsoft会雇用您?是什么让您与入围面试的其他候选人有所不同?
    2. 他询问了我的暑期实习以及我在简历中提到的项目。
    3. 问堆栈,队列和链接列表之间的区别,哪个更好。
  • 编码问题:
    1. 给定一个字符串列表,找到最大长度的字符串,该字符串由列表中其他字符串的组合组成。
      Input :[Information, Technology, Batchof2020, 
      InformationTechnology, Batchof2020InformationInternship]
      
      Output : InformationTechnology
      
      Note:"Batchof2020InformationInternship" is the longest string 
      but its has a sub string Internship which
       is not a string in the given list, hence its not the output.
      

技术面试3:

在这一回合中,面试官彻底检查了我的整个简历,并向我询问了我最喜欢辩论的爱好。因此,他与一位优秀演讲者的角色进行了伪辩论并与我进行了讨论。

之后,我们玩了一个猜字游戏,我不记得游戏的名字了。他基本上向我解释了游戏,并向我介绍了所有规则。玩完游戏后,他告诉我编写游戏代码,这将是我今天的最后一个问题。我在4-5分钟内编写了代码。他似乎对代码感到满意,并祝我好运!

这是选择过程的终点,大约是在我被告知我被选中之后的10分钟😀

这是我的第一次采访经历,我被选中!长达10小时的过程结束了,这给了我一生中最好的机会。