Open In App

DE Shaw Interview Experience for Software Intern (On-Campus) 2023

Last Updated : 16 Aug, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

Online Test – Round 1:

Shortlisting Criteria  – CSE – >7 CGPA , Other Branches >8 CGPA

Platform – Hackerrank ( Most of the companies conduct on Hackerrank )

  1. 3 Questions were asked, and each question had a timer and the leftover time would not be carried over to the next problem, so solving quickly before time did not have any advantage.
  2. 25 mins – 30 mins – 30 mins was the time breakup
  3. Questions difficulty breakup in terms of CF rating 1400 ( Constructive )  –  1600 ( Greedy problem )  – 1800 ( DP on trees problem )
  4. I don’t exactly remember the questions but it is safe to say that solving regularly on CF and CC would have made you well equipped to handle the problems given in the test.

Interview Experience 

Round 1:

Question 1: https://www.geeksforgeeks.org/given-sorted-dictionary-find-precedence-characters/

You were expected to tell the interviewer the brute forces method first and then progressively optimize it towards the solution. Always make sure to tell the interviewer what you are thinking and talk to him about the time complexity and memory complexity of each step as well.

Question 2: Then I was asked questions based on OOPs, all the questions were fairly standard and can be found among the popular OOPS questions. Particularly concentrate on things like 

  • Polymorphism – Compile Time and Run Time
  • Inheritance 
  • Virtual Functions and Pure Virtual Functions and their working [ IMPORTANT ]

Question 3: Then I was asked also to explain the projects that I had mentioned on my CV as well.

Round 2:

Questions 1

Hackerrank with the Interviewer along you

In Hackerland every character has a weight. The weight of an English uppercase alphabet A-Z is given below :

A = 1
B = 2*A + A
C = 3*B + B
D = 4*C + C
….
Z = 26*Y + Y

The weight made up of these characters is the summation of the weights of each character. Given a total string weight, determine the shortest string of the given weight. If there is more than one solution, return the lexicographically smallest of them. For example, given weight = 25, and the weights of the first few characters of the alphabets are A=1, B=3, C=12, D=60 it is certain that no letter larger than C is required. Some of the strings with a total weight equal to the target are ABBBBC, ACC, AAAAAAABBBBBB. The shortest of these is ACC. While any permutation of these characters will have the same weight, this is the lexicographically smallest of them.

Example

Input
20
Output
AABBC

Solution  – Each character weight is the divisor of the higher character so simply apply greedily and choose the biggest character within the remaining weight each time and reverse the string to get the result.

Tips – Take the interviewer along with you and explain each and every step of how you are thinking. Always explain the Time Complexity and Memory Complexity of the told solution. Never let the pause become too profound.

Question 2

This Round again focussed mainly on OOPS and a little bit of OS. 

In OS it was mostly about threads and processes and OOPS was standard, some examples of questions are 

  • Difference between stack and heap memory
  • Difference between threads and processes
  • Where is global memory allocated in heap or stack and what is the difference
  • Static variables and static functions
  • Virtual Functions, Virtual Destructors
  • Defining classes and making objects with whatever they are telling
  • What are smart pointers ( DE Shaw loves asking this question )
  • When are destructors called 

Important Question 

classA{
 /*
 Class definition
*/
void func()
{
   As1;
   A*s2=newA();
}
int main()
{
}
  func();
  return0;

Question – What is the difference between s1 and s2

Answer: When the func() is called s1 object is created and memory is allocated to it, similarly in the case of s2 memory is allocated and then s2 is pointed to it.

So, when the function ends the destructor of s1 is called and the memory associated with it is destroyed whereas in the case of s2 the pointer is destroyed but the memory associated with it is not and so it ends up creating a memory block with no pointer pointing to it, and hence the memory can not be used and is a wastage of memory.

Smart pointers are used to solve this issue with the normal pointers.

Question 3: https://www.geeksforgeeks.org/design-a-data-structure-that-supports-insert-delete-search-and-getrandom-in-constant-time/

You had to keep on optimizing the solution starting from brute force, all the way to the most optimal one.

After all this, I received the offer.

Final Tips:

  • Always have a calm mind and believe that you have prepared all that you could
  • Always talk about your thinking process to the interviewer, it does not matter if it is wrong his job is to guide you. Too long of silence can make the interview awkward
  • Always discuss the time complexity and memory complexity of the approach after coding

Remember the interviewer is here to hire people and not to reject them !!.

All the Best


Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads