DE-Shaw came to IIT Indore for internship interviews on 9th September. There were 3 technical rounds in total followed by an HR round.
The first round was a coding round which lasted for 1 hour and had 2 problems given below-
Q1.There is a bookshelf with N number of books. Each book is of type A or type B. There is an infinite supply of books of each type A and B. An arrangement of books on the bookshelf is called good if all the books of type A are on the left of all the books of type B. You are allowed to replace books on the shelf with books not on the shelf. Find the minimum number of replacements so that the arrangement of books becomes good. Example:
Consider the arrangement- BBAAAABBBB. If we replace the first two BB with AA then the arrangement becomes good. Hence the answer is 2.
Q2. There is a grid of size NxN. There are certain cells that are marked as special. Consider all the windows of arbitrary width and length <= k. For each such window we assign “sum” as the sum of distance between all pairs of special cells enclosed in the window. Find the maximum value of this sum.
On the basis of the coding round, 16 students were shortlisted for round 2.
Second Round (Technical Interview)-
The round lasted around 1 hour 15 mins. A few CP problems were asked in the interview then the interviewers moved on to C/C++ and DBMS questions. The following questions were asked-
Q1. What is the difference between C and C++?
Q2. What are OOP concepts?
Q3. What is inheritance? (A few cases were given to test the concept)
Q4. Difference between protected and private access specifier.
Q5. What is the use of virtual functions and virtual class?
Q6. What is extern and name mangling?
Q7. What is normalization?
Q8. What is BCNF? Give an example of a table that satisfies BCNF.
Q9. An example of train scheduling system was given and a few tables were given that might exist in such a system. The interviewer asked if the given system of tables was free of redundancy and wanted changes to be made to the design of the tables to keep them redundancy free. At the end he wanted to partition the table so that it is in BCNF.
After this round, 6-7 students were selected for the 3rd round.
Third Round (Technical Interview) –
This round lasted around 1 hour 30 mins for all candidates. This round focussed mostly on a system design problem along with a few CP questions and C++ questions.
Two CP questions were asked in this round
Q1. Given an array A, find the maximum value of | Ai – Aj | + | i – j | in O(n) time complexity.
Q2. Design a data structure that can do value retrieval in O(logn), deletion in O(logn), insertion in O(logn) and preserves the order of insertion after a value is deleted and we can also traverse over the inserted values.
(Hint for Q2. – consider a map with a doubly-linked list)
Then after solving the above two problems, I was asked the following –
Consider a file that contains different log entries from different applications. Design an algorithm or way that with which logs of similar type can be classified together.
After discussing my solution for around 45 mins, we moved to the final part of the interview where I was asked questions about C++. Few questions that were asked were –
Q1. What are smart pointers?
Q2. Questions about the calling of constructors and destructors.
Q3. What are namespaces and what is their use?
Q4. How is inheritance affected by the virtual and pure virtual functions?
After this round, all the candidates had a short HR round which was just a casual talk with the HR.
Finally, DE-Shaw selected 3 students as interns for Summer 2020. Overall my experience was good, the interviewers were frank and ready to help us in case we got stuck somewhere while solving any of the problems.