There were six rounds.
First – online (10 MCQ and 5 coding questions, 90 min)
Second – Algorithms
Third – Technical
Fourth – Data structure and Algorithm
Fifth – Data structure and Algorithm
Sixth – Project, Algorithm and Puzzle.
The first round was online coding
. It consisted of 10 mcq which were based on data structures, complexities, sql queries, operating system, aptitude, c and c++. It also consisted of 5 coding questions. Out of which two were pretty straight forward, one was medium and other two were tough. I was only able to solve 3 problems and half solved fourth. In one of the problems you had to implement a binary search tree. I don’t remember the exact questions, if you read geeksforgeeks
then you can clear this round.
The second round was telephonic
. I was asked two coding questions. Given a 2 dimensional array in which the rows and columns are sorted find a given element. You can find an O(m+n) solution here Search in row wise and column wise sorted matrix.
The other question was given a 2 dimensional array in which the elements are either ‘x’ or ‘o’. Replace all ‘o’ with ‘x’ if the top, bottom, right and left elements are ‘x’. I did it using two traversals. In first traversal I replaced ‘o’ which satisfy the constraint with some arbitrary value ‘y’ and then replaced all ‘y’ with ‘x’ in the second traversal. I was asked if I was aware of any version control software’s. I said, I knew about git and svn. He asked me to tell the difference between git merge and rebase. He asked me how would you implement your own version control software. I told him I would implement it using MD5 algorithm. I would see if hash values are different and then point accordingly that there have been some changes in the local repository. He did not want me to tell the entire design, he was satisfied with my answer and time was up for the interview.
The third round was theoretical. He asked me about system calls, fork, difference between nfa and dfa, rsa algorithm, virtual function, inheritance, polymorphism, inode in unix file structure. He was testing my concepts. You need to know the basics of operating system and theory of computation to ace this interview.
In the fourth round was mainly data structures and algorithm based. He asked me to tell the difference between binary search tree and binary tree. Tell the difference between binary tree and heap. How to delete a node in a binary search tree. Given two arrays of same size containing randomly arranged values. You need to rearrange the values such that if the two arrays are a and b then sum of product of corresponding values i.e. a1*b1 + a2*b2 + a3*b3 + …. + an*bn where a1,b1 are the first elements of array a and b respectively of size n. I gave an answer for this question that I will simply sort one array in ascending order and the other array in descending order and do the corresponding operations and it will give me the required result.
I was called onsite for the next rounds.
In the fifth round which was a f2f roun
d, there was a discussion about my college projects and intern ship projects. He then moved on to ask again algorithm related questions. Given a number find the next greatest palindrome
. Given a ternary search tree how will you insert, find and delete elements. The ternary search tree is implement in such a fashion that each element has three childs left,middle and right. The left value is less than the parents value, middle value is equal to parents value (middle will be present only in case of duplicate elements) and right value is greater than the parents value. The tree should be height balanced considering middle values.
In the sixth round which was also a f2f round
, there was a discussion about my projects and whether I had any previous web development experience or not. He asked to tell me what happens when i enter a url in my browser
, explain each step in detail. Then asked me search an element in sorted pivoted array without duplicates
and then extended the question to search an element in sorted pivoted array with duplicates
. I was asked a puzzle next which was, you have 10 bottles each bottle has 10 tablets. A tablet usually weighs one gram. One of the bottles has tablets weighing 2 grams find the bottle number when you have an weighing machine which tells you the weight you put on it and you can use it only once. I gave him the straight forward answer that I will take 1 tablet from first bottle, 2 tablets from second bottle and 3 from third bottle etc and it would tell me uniquely which bottle has 2 grams weighing tablets. Then he extended the question if there are two such bottles then how can you find them. I was not able to solve this question as the constraint was 10 tablets in each bottle. If this constraint was not present I would have taken 2 from first, 4 from second, 8 from third and then I could uniquely identify the two bottles with different weight tablets.
If you like GeeksforGeeks and would like to contribute, you can also write an article and mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more, please refer Complete Interview Preparation Course. In case you are prepared, test your skills using TCS, Wipro, Amazon. Google and Microsoft Test Serieses.