Round 1: (Java Online Coding Challenge)
This was an Online coding challenge on Java (150 mins). Webcam was mandatory to take this test. There were 3 questions: 1 easy, 1 medium and 1 difficult. We could only go to the next question if we had submitted the previous one.
Question 1: This was the easy question where we had to extend an abstract class, override 2 methods from it and add some more methods. I solved it in 6 mins though time allotted for this was 40 mins.(little too much i guess)
Question 2: This was the medium question and this tag of ‘medium’ mislead me. The question was fairly easy but I didn’t read the question properly and coded a wrong solution at first. I eventually solved it in 30 mins out of 50 mins allotted time. I could have solved this question easily within 10 minutes had i read the question properly. It was a simple ad-hoc problem based on array operation.
Question 3: I solved the hard question in 18 mins out of 1 hr allocated time and turned out that I took less time to solve this than the medium one. This was a problem based on longest palindromic sub sequence and my intense practice of Dynamic Programming over past few months helped me pass all test cases with ease.
Overall i took around 50 mins to complete the test and scored 100/100. I felt I had a good chance to qualify for Round 2 which I eventually did and was called for further rounds at MLR Institute Of Technology, Hyderabad. Only 2 students qualified for the next round from my college and I felt elated to be among them.
Round 2: (JAVA Coding Challenge)
This round contained 11 MCQ questions of 20 marks based on JAVA, OOPS, C++, DBMS, Networking and Operating Systems. There were 2 more Java coding questions out of which one were medium and one hard. Overall time for this test was 2 hours. The cutoff for this round was 40/100. Students who scored less than 40 were asked to leave and those above 40 were asked to stay back for further rounds. I solved the medium question in 4 mins and the hard question demanded knowledge of regular expression to be solved. From a given string I had to figure out whether it was IPV4 address or IPV6 address or neither of them. I didn’t know regular expression but still I found a way out to solve it passing all the test cases except 2. I scored 34/50 for that question. I didn’t give a further try because I knew I had qualified for the next round as I have already bagged 30 for the previous question. I eventually scored 75.2/100 which later turned out to be exceptional considering the performance of other students but I honestly feel I should have done way better. 37 students out of more than 150 students( for that particular center) cleared Round 2 and were asked to go and have lunch.
Round 3: (Group Discussion)
Next up was the Group Discussion Round. It was very interesting actually as we got the chance to know each other and made few friends after the round. We were given a situation where the Earth would be destroyed in the next 15 mins. Only 3 of us can survive and we have to decide who 3 will be the fortunate/unfortunate ones. No one was eliminated in this round and we were asked to proceed for the technical round.
Round 4: (Technical Interview)
This was a grueling 40 mins to 1 hour interview session with only one member in the panel. However I already had an interview experience in TCS and therefore I didn’t get intimidated too much and kept my cool.
Interviewer : OK, So Riddhi you are from Kolkata?
Me: Yes Sir.
Interviewer : Good, actually I like the Bengalis as they are very hardworking.
Me: Not really Sir. I think we are the most lazy people you will ever see.
Interviewer : Haha, Ok so let’s get started with the questions. It will be a rapid fire round and you have to answer very fast. So are you ready?
Me: Yes sir.
Interviewer : What is String Immutability?
Interviewer : What is String Pooling?
Me : Sorry Sir, I don’t know. (Later I figured out I knew the concept but didn’t knew it was termed as string pooling. )
Interviewer : Write a code to demonstrate dynamic method dispatch.
Me : Did
Interviewer : What is an abstract class?
Me : Told.
Interviewer : Can static, private, final methods be overridden?
Me : No sir. However overriding static methods won’t give any compile time error but the other 2 will.
Interviewer : Good. What is the difference between interface and abstract class?
Me : told.
Interviewer : So Riddhi, how will you achieve Multiple Inheritance in JAVA?
Me : With the help of interface, Sir. An interface can implement and extend multiple interfaces.
Interviewer : What is static class?
Me : Told
Interviewer : What is the difference between inner class and nested class?
Me : Told. (He seemed satisfied with me by now)
Interviewer : Explain final class, final method.
Me : Did
Interviewer : What is final field, static field. Give me its application
Me : Did
Interviewer : What is singleton class. Write a code to explain how does it work.
Me : Wrote
Interviewer : When can you override clone method of Object class.
Me : Sir only when that class implements Cloneable which is a tagging interface. And we should do that only when there will arise a problem of shallow copy.
Interviewer : Are wah, concept to pura clear hain tumhara!
Me : Thanks Sir. (Getting a compliment from an interviewer can be the best thing ever. My nerves got settled. However the next question……)
Interviewer : What is an extensible framework?
Me : (Trust me I am yet to find an answer to this question).
Interviewer : Remember, if others answers this question, you will be gone!
Me : (Pulled back to earth and my confidence took a beating)
Interviewer : OK, so tell me why JAVA is platform independent?
Me : Told
Interviewer : Can we have multiple constructors in a class. How to implement it?
Me : Yes sir, by constructor overloading.
Interviewer : Do you know super and this?
Me : Yes sir and explained.
Interviewer : What is the difference between String Builder and String Buffer?
Me : Buffer is thread safe sir but the other is not.
Interviewer : What is the difference between == and .equals() ?
Me : Told
Interviewer : OK, so explain to me the internal working of Hash-map in java.
Me : Explained him thoroughly using separate chaining method and using a bucket array. A lot of questions were asked from it as well.
Interviewer : You used Linked List, can we use any other better data structure?
Me : Sir probably Balanced BST.
Interviewer : Yeah before Java 5 they used Linked Lists but now they use Balanced BST.
Me : Gives a nod.
Interviewer : Well Riddhi you are the first candidate that I came across who could actually answer this question. No one could. So you are doing really well and have a great chance. Don’t throw it away.
Me : Sure, Sir will try my best. (Confidence regained)
Interviewer : Ok Riddhi now let’s test your problem solving abilities. You scored 75 in 2nd round. Wow that was great. Lets see how you do here. Shall we begin?
Me : Yes sir.
Interviewer : I have an unsorted array. I want you to return a pair of 2 numbers from that array such that the sum is equal to x. Do it for me in the most efficient way. Just tell me the approach.
Me : Sir there can be an approach of O(N^2) by running two loops and checking combinations of all pairs one by one.
Interviewer : I said efficient solution!
Me : Give me 2 mins sir….(Thinking, thinking…….After few seconds) Okay i got it sir. I will do it in Nlogn. I will first sort the array and then for every value of a[i], will apply binary search in the array to find whether x-a[i] exists in the array. If found I am done. For every iteration I will be doing logn work.
Interviewer : Good that will work. Over to the next question.
Suppose I have an array of 0s and 1s and they are not sorted. How can i sort them in an efficient way?
Me: Sir, I will use the two pointer method to get it done in O(n) and in one traversal.
Interviewer : How will u detect loop in a linked list?
Me : Will keep a boolean array and if i visit one loop will mark it as visited….
Interviewer : (Interrupting me.) I don’t want to waste extra space.
Me : Ok let me give another try sir….
Interviewer : How about applying two pointers here?
Me : Okay Sir I got it. (Explained him my approach with two pointers).
Interviewer : How will u print left view of a tree only?
Me : Using level order traversal sir and will print the first element from the queue always.
Interviewer : How will u find the first non repeating character in a string?
Me : Explained him my logic using hash-maps.
Interviewer : How can I reach from (0, 0) position to (n-1, n-1) position in a matrix through the shortest path.
Me : I will use BFS sir.
Interviewer : and what if the costs are different?
Me : Then will use Dynamic Programming because BFS will only work for unit values. We will use Min Cost Path Algorithm.
Interviewer : Great. Now suppose i have a matrix of scattered 1s and 0s. Cluster of 1s form an island. How will you find number of such islands?
Me : The number of connected components will be the answer sir.
Interviewer : and how will you find it?
Me : Sir, I will use BFS or DFS multiple times till i have all the nodes visited. (Explained him the whole approach thereafter and he seemed satisfied)
Interviewer : Okay so lets move on to puzzles. Do you like solving them?
Me : Yes sir.(though at that moment I was not. I am pretty sure you are bored to read till this and I was the one who actually went through all of this the entire day. I was in no mood to solve puzzles)
Interviewer : 8 balls are there. One of them is lighter. Find the lighter one using minimum weighing.
Me : 3 sir. (though the answer was 2)
Interviewer : OK Riddhi, I am done. Thanks for your time.
Me : Thank you Sir.
I cleared the technical round and had another round (HR) which lasted for around 30 minutes. Then 5 of us were taken to a room where we were told that we have been shortlisted after having cleared all the rounds successfully. However they couldn’t confirm us the offer as they have to visit other centers and will take total of 200 candidates from all over India.
It was an awesome experience and for the first time I felt that my passion for competitive coding helped me in a big way to crack the coding and technical rounds. Waiting for the results. Fingers crossed.