Morgan Stanley Interview Experience | On Campus (Virtual) July 2020

For the Role of Technology Analyst.

out of 1800 students only 400 were eligible for the test (9+, cgpa).
Online Test – 3 SECTIONS, same basic pattern, Webcam Proctored (where? -> AMCAT)
You cannot jump from one section to other. Each section has its own timing and is not carried forward if left.

Section 1 – Aptitude 20 MINS
Section 2 – Debug and fill in the Code 20 MINS
Section 3 – CODING 60 MINS 3 codes.
please note the questions were not direct they were twisted and not well framed.I am sharing here the name of the question so that you can find it easily online. 
code1- Fibonacci minjumps (available on gfg)
code2- Merge Sorted Intervals.
code3- Given a matrix of size (n,m) with either (+) or (-). (+) represents a point of the parallelogram. There will be exactly 3 (+) symbols inside the matrix of size (n,m). Given 2 diagonal points (x,y) of the same parallelogram and we will have to find out the fourth point. 
input:-
5 4                                                              //n,m
[[—-],[-+–],[+—],[—-],[–+-]]                // matrix of size n,m
2 2 5 3                                                     // diagonal point x1,y1 x2,y2
output:- 
4 4                                                          //fourth points

out of 400 only 19 were shortlisted.
INTERVIEW ROUND 1 conducted on zoom platform

1) OOPS concept – Map your keyboard with all the oops concept you know.
2) What is namespace in C++? with an example.
3) Find minimum element in a circular Linked List (unsorted).
Ans) 
Asked me to write the functional code, walk-through the full code and ensured whether all the base cases have been handled or not. Then discuss the time complexity and in the end interviewer grilled me alot about any further optimization is available or not.
4) Implement Forward and Backward button in Web Browser using any data structure.
Ans) 
I choose doubly linkedlist and explained him the full implementation.Later he asked me about the stack implementation and asked me to explain the whole approach. again he asked me to compare both the data structure and asked me to choose the best one.
5) Then the next question was aimed on trees. I was asked to discuss and code on Given two binary trees, check if the first tree is subtree of the second one. A subtree of a tree T is a tree S consisting of a node in T and all of its descendants in T. 
Ans)
I gave him the recursion approach and walked him through the whole recursion. Discuss time complexity and he ensured about all the edge cases whether they are being handled or not.He further asked me optimize it using the idea of traversal.After optimizing it he wanted to know the reason behind why I need two traversal and why it cannot happen using one he even asked me why I did not use this approach in my first attempt.
6) At last his last question for the day was on finding whether a number is a perfect square or not.
Ans) 
Started with brute-force time -> root(n). 
was asked to optimize ended up with Binary Search in log(n), was asked to code the approach and explain why are we doing so.



out of 19 only 10 were shortlisted.
INTERVIEW ROUND 2 conducted on zoom platform

This round was basically an Object Oriented Design Round (or some people say it as System Design,which is wrong).
My task was to discuss about the implement of my own BOOK MY SHOW APP and write its pseudocode. 
1) asked me to point out all the main modules first.
2) asked me to start writing down all the classes and function that I was talking about.
3) step by step Interviewer started adding dynamic features to my implementation I will explain below:
3.1)Types of users :
-> Administrator, Customers, Hosts
3.2)Types of Functionality :
-> booking an event, Hosting an event, managing the payment,adding user,modifying user, deleting user and etc.
3.3)Adding a user :
-> Name,age,phone,userid (const primary key for users) ,email,location.*(tips. make a location structure with city,country and state to display proper event suggestion to user)
3.4)Adding an event : 
-> eventId(const. primary key for events) ,Date, time, duration, enddate, location, dynamic timings for each day if available, seat availability, price and host data.
3.5)Seating configuration implementation :
-> he wanted me to handle about the case where the seat is a front row, back row,aisle seat and assign a seat id to each seat. for this I would recommend making a new structure called seatinfo and you can add all the required feature and in the end you can create an array for no of seats inside the whole function class.
3.6) User wants to make a booking :
-> in this he wanted to check how will I handle my booking case here, for that first we need to display events to user that are happening near him, here we use our location structure and now the city variable will help us to show suggestion accordingly. secondly we will want our administrator to manage the booking and not do any functionality in the user class as it ensures total separation between user and event class so that user or event can’t access/modify .
3.7) Implement booking function in the singleton admin class (read about singleton classes, very basic)
-> set a timeout for each user. Ask user to enter seat id for the seats he want to book and mark those seats as booked so that it is not available to other users. Allow user to choose not more than 10 seats. Only mark a seat booked if it is available. Then if the timeout timer reaches to zero ROLLBACK all the selected seats to available. Next if user want to move to payment section constantly keep on checking for the payment confirmation. If successful then display ticket it and a message booked or else just simply ROLLBACK the seats states that were selected to user. (I wasn’t asked to implement the ROLLBACK feature).
3.8) This was not it… for location based suggestion he wanted another approach API based approach for that I suggested him Google maps API which gives us the latitude and longitude.Now we can select a particular range of distance and display user all the event present in the selected radius keeping the user as the center of the circle.

out of 10 only 6 qualified for further round.
INTERVIEW ROUND 3 conducted on zoom platform

A HR Round. 
I was asked about my Introduction.
About my previous Internship experience.
3 things that I liked about my Internship Company.
3 things that I disliked about my Internship Company.
3 things I liked about my country and how does it make it special from others.
3 things I would really want to change in my country.
and some questions about TEAMWORK and LEADERSHIP.

A few things you should keep in mind.
1) While you prepare a topic ensure that you have understood it very well and can implement it by yourself.
2) If you are not familiar with the topic or don’t know the answer. Just SAY NO.
3) Ensure you have covered the application of the topic you know in depth.
4) if an interviewer asks to optimize a code then BUD optimization is the best technique.(Read CRACKING the CODING INTERVIEW book it will guide you on how to face Interviews and has a good collection of commonly asked Interview Questions, trust me it matches 100%).
5)If you have prepared for the Interview, stay confident and do-not panic.

I wasn’t selected for the offer. ALL THE BEST 🙂


Write your Interview Experience or mail it to contribute@geeksforgeeks.org

My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.