Microsoft Interview Experience for Summer Internship 2020
Round-1) Written test conducted on mettl.com
There was a pool of questions out of which everyone got 3 questions in 1.5hr. The questions were of easy, easy and medium level. I was asked the following:
- Find roots of given quadratic equation. The tricky part was they asked to return (not print) them having only 3 decimal places.
- Check for balanced paranthesis in a given piece of code.
- Given n students, m colleges and n*m Boolean matrix which represents whether student has applied in a college or not. Also, given number of seats in college, what are the maximum possible admissions that could be given in total.
I did all the three to be on safer side. But cutoff surprisingly was low to 1.6 questions solved. They have specific test cases pertaining to corner cases, time complexity cases, etc. 10 test cases per question.
54 students were shortlisted for next round.
Round-2) Group fly round
I wonder why it is called group fly round, when there is neither any group nor anything flying. Here, they gave 2 questions in 1hr where we have to write complete code on paper in any language of your choice. It is recommended to use either C, C++ or Java. The questions are:
- Print all nodes with k distance from target node.
- Flood fill algorithm i.e. given n*m matrix with different colors in each pixel. Given a co-ordinate (i, j) and a new color k, you need to fill k color at given co-ordinate and all adjacent pixels with same color will be filled with new color. This is done in recursive manner till the boundaries are of different colors.
I did both of them. I would recommend to practice data structures well and basic algorithms. The areas include trees, stack, linked lists, graphs and dynamic programming, in that order. Solving all the questions till this round will give you backup in case you spoil some interview round. Try writing neat and clean code, without cancelling any statement.
After this round, they gave a break, followed by presentation by the company officials. After lunch time, results were announced and 21 students moved to next round.
I used to think that to start with, they will ask all flavoured questions like Introduce yourself, etc. Literally speaking, as soon as I entered, the interviewer just said, let’s start with problem solving. He told me that first explain me your approach, if it’s okay, then write the code for it.
- Increasing decreasing array is given, write program to search an element in it.
- In a stream of characters coming in, keep track of first non-repeating character at each instance.
I explained the approach with an example. After explaining the codes to him, he asked me to write test cases for it. What is of utter importance while writing test cases is all the paths which your program could take should be checked.
It was a kind of rapid fire kind till the point when I was stuck. He started with What is HashTable? Why do we use it? What is the time complexity associated with various operations? What is a good hash function? How to resolve collisions? If all n keys go into same hash value, then O(1) search is violated, how to still achieve this? How is HashMap implemented? Now, the question came at which I was stuck, “Return a random number from given HashTable.” What he wrote was, X = H.random(); How to implement this? Really speaking, I tried to convince the interviewer, but he seemed to be less satisfied. Then he told, let’s move to problem solving.
- Given an array consisting of only 0, 1 and 2. Sort it.
Explained multiple approaches. Now, he started dry run on the code I wrote for Dutch National Flag algorithm. He claimed that my code is not working. I explained him 3times, but everytime he missed something and lead to wrong result. Then he told, we are running out of time, let’s move to next problem.
- Do you know dynamic programming? I told yes, so he asked me, what all dp problems you have solved. I gave a list of 12-15 different pattern problems. He replied, okay I will not ask you any problem from dp.(probably I had heard of all the problems in his list) He then asked how to check if a given linked list is a palindrome in one pass.
I wrote code for both of them. He seemed dissatisfied at end. He said have a nice day. I thought, it’s over now. But, it was just the beginning. The HR coordinator asked me to go to another room and wait. I was wondering, they should have said goodbye directly, but there was a surprise for me within few minutes. HR called me, please come.
What you learnt in your previous company? Why MTech then? What is your recent interest of study? It was more of a conversation, because my previous company was next to Microsoft office, so kind of neighbour talks ! You mentioned Sudoku solver, h what is it? How you implemented it? Ok, let’s move to a basic problem. He asked me to write recursive equation for 0-1Knapsack problem and explain. He was happy and asked how was my written and group fly. I told him that I did everything, but I could have done 1 problem in a better way, so he was impressed.
I was immediately called in.
The principal manager with 17yrs exp took this interview. She asked which is your favourite website. I was soo tired, I could barely speak. I didn’t had lunch properly and no snacks. Still, I said something and told her about Quora and why I like Quora. She then asked me Celebrity problem. I was not able to think, but she helped me to think and I was able to answer in third time. Anything you do apart from your regular time? I told her about Marathons and football. Ok, we are done. Any questions? We will let you know the results, you may leave.
Results were announced same day night and I was among the 6 people selected, followed by celebrations.
- Prepare from any website like leetcode, geeksforgeeks, careercup, interview bit, etc. But stick to one, don’t get confused by other people are doing this and I am not doing.
- Learn to write code on paper and not just computer.
- Try to attempt before giving up on solutions during interview. The interviewers are very very generous people and they help you a lot. Think that they are here to take only you, so you have solve everything.
- Be sure what you are writing on resume, you must know everything what you write. Write less, speak more. If you write more, what will you have to tell in interview.
- I would recommend writing mini projects which might be small, but you learnt some nice concept from it. I mentioned Sudoku solver and they asked me about it.
- They follow feedback based system after every interview, i.e. they keep on attaching all the sheets you used previously and write their feedback and forward it to next interviewer, so if one interview didn’t go well, don’t feel bad, do your best in next interview and they might still select you.
At last, don’t get disheartened if you are not able to code everything in one go. Learn a concept in a day and solve 3-5 questions on it. One day, when the day is yours, everything will come to you.
Till then, cheers !