It was a test having numerous sections ranging from aptitude to CS fundamentals and software engineering aptitude, no negative marking was present. All of the technical questions revolved around trees (BST/AVL). So make sure you know trees well. Apart from that , the aptitude section was quite doable, and there were some misc sections like "attention to details" which are easy.So basically trees was the make or break topic for this test. Around 40 people were selected for the next round.
The interview started with my introduction, then the interviewer asked me to code a question on notepad, they just want to see if we can code sensibly, so no worries even if you don't write production level code, but they test your logic. The first question was to find the first duplicate in an array, I explained my approach (both brute force and optimized one), and then once we fixated on the correct logic, I coded the solution. Next , he asked me to implement set data structure which I used to solve the previous question, we discussed the implementation, then I coded the set DS (chaining/bucketing of linked list ). Next question was on balanced brackets, given a string containing all types of brackets , return whether its balanced or not, I explained him the logic(stack) and I was not asked to code it as we were already out of time. Lastly, I asked him 2-3 questions.
This round started with some pleasantries, I was asked 2 coding questions only in this round(again on notepad), nothing else. First question was easy - given a string having lowercase and uppercase alphabets only, return the most common uppercase alphabet. I was able to give an optimized solution using O(1) space and O(n) time. Second question was a bit tricky - given a string return the most commonly occurring sub-string. I discussed the brute force approach, and tried to optimize it but I could not. So my interviewer suggested to code the brute force approach itself. Post the coding, I asked her for some feedback about my conduct, and she said she was satisfied.
This round was a bit difficult, the interviewer was a senior manager in the organization. We started lightly, he asked my about my interests, hobbies, commented on my GPA :p. We also discussed about my intenship .We had some shared interests so he went on to ask me some questions related to that. Then he asked me general questions as - what is association, aggregation and composition in OOPS? Difference between run time and compile time polymorphism? Why have computers made big strides in HDD memory(1-2 GB to 1-2TB), RAM memory(128 MB - 8,16 GB) and processor speed but the address space has only jumped from 32 bit to 64 bit. Then he asked me a very tricky question/puzzle, which was basically assuming an IPL score table, I had to determine what would be the lowest score which could still possibly put a team through into the playoffs(assuming they have the highest NRR). This question took a lot of thinking and a lot of time, he also gave me hints when I was stuck, I was able to answer correctly. He also wanted me to code it, but we overshot the time so he did not ask me to code. Finally, I asked him 2-3 questions.
Be clear with CS fundamentals. DO NOT write something on your resume which you are not strongly familiar with. Try to think out loud even when you are stuck , it conveys to the interviewer what you are thinking, so they can guide you towards the correct answer.
Try to use examples as a means to explain concepts.