It had just been around 1-2 months since I had started working on my DSA for interview preparation when the 1st round (Aptitude test) of Morgan Stanley was scheduled. For those 1-2 months, I had been referring to the most popular interview questions on GfG and was also simultaneously participating in contests conducted on Codechef. Coming back to the aptitude test, the test consisted of 3 sections-
- Aptitude Section (10 MCQ questions): General aptitude-based questions which test your mathematical reasoning abilities. This was the toughest section for me personally because I hadn’t prepared particularly for this kind of question and the time allotted was very less.
- Debugging Section (7 questions): First we had to choose a language from C, C++, Java. Then, we were given 7 code snippets containing a logical or syntax error, and we have to rectify those errors and pass the test cases given. This section was quite easy, and I could solve around 4-5 out of 7 questions during the allotted time for this section.
- Coding Section (3 questions): Coding questions were of moderate level I would say because anyone who would have solved the most popular interview questions would have been able to solve all of these, but solving within the allotted time is the real problem. However, I could only solve 1 question fully and managed to pass half the test cases for the 2nd question, due to time constraints. The 1st question was pretty basic math-related and simple brute force was enough to pass all test cases. We were given a number as input, and we had to find the smallest number(not starting from zeros) which can be generated using the digits of the given number. The 2nd question was based on a standard DP problem – The Longest Common Subsequence (LCS). The only difficult part was figuring out that it is an LCS-based question. The last question was based on Breadth-First Traversal of a Tree which was also easy, but I didn’t get the time to attempt this question.
123 students had appeared for the test, out of which 12 were shortlisted for further interview rounds.
Interview Round 1:
The interview started with a little discussion about my projects and questions related to APIs as I had used an API in my project. Then the interviewer asked me about the data structures I am proficient in, I replied by saying arrays, Hashmap, stacks, queues.
As a follow-up to my reply, he asked some theoretical questions on Hash Map and collisions. It was pretty easy so I answered it correctly. Then, he gave me a coding question on stacks but only asked me the approach I would follow and not the code. The question was to implement a parenthesis checker for an expression that can have many types of parenthesis involved. I put forward an approach that seemed to be correct, but then he gave me an edge case where it would fail. After giving one more failed approach and him giving me hints of edge cases, I finally got the solution right, and he was convinced.
Then he gave me a question on the spiral traversal of a matrix, but after giving me this question the interviewer had some emergency situation at his place (since it was a virtual interview). So I was told to leave the call and wait for some time. In the meantime, I was ready with the answer to that question which he had given me :-). After about half an hour, my interview was continued, and he just asked me the approach because he knew that I might be ready with the answer.
The next coding question he gave me was to find all permutations of words from phone digits, a pretty standard GfG question. I was asked to write code for this one, which I somehow managed using recursion. Finally, he asked the approach for 1-2 more questions which were of moderate level.
Interview Round 2:
This interview again started with a discussion about my project but not the same project as earlier. This interview was like a combination of Tech + Behavioral round, and I was mainly asked questions that were situation-based, like what would you do if your teammate refuses to work for some reason, and you have a deadline that is closing in. He didn’t ask me any DS Algo-related questions but some tech questions he asked were related to DBMS, System Design (like designing an app like WhatsApp), etc. The interviewer knew that I was a TY student, so he didn’t lay much emphasis on system design but at the same time, I answered his questions to the best of my knowledge.
Both the interview rounds were conducted on the same day with a gap of 1-1.5 hours between the 2 rounds. The result was announced a day later and fortunately, I was selected. Both the interviewers were extremely friendly, and it felt more like a normal conversation to me rather than an interview.
Some final tips:
- If you don’t know anything about a specific topic, just say it !!
- Think out loud, communicate your ideas properly to the interviewer.
- Be well aware of your projects which you are including in your resume.
- Be confident, keep calm and stay positive.
Thanks for reading all the way till the end !! 🙂
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more, please refer Complete Interview Preparation Course. In case you are prepared, test your skills using TCS, Wipro, Amazon and Microsoft Test Serieses.