Round 1: This was an online test, with 25 MCQs and 1 coding problem. Time Limit: 1:30 hr
MCQs were based on permutation and combination, regular expressions, basics of Oops, DBMS, OS and algorithms. The coding problem asked was a variation of following problem:
After this round, 20 students were shortlisted for interviews.
Round 2: Technical Round 1. Time Limit : 1-1:30 hr approx
It started with a introduction, and then he asked me an algorithm problem.
You have an array of strings, and we can connect two strings, if last letter of one string is same as the first letter of other string. For example ABC CDE can be connected to make ABC-CDE. Now, you have to find out, if a cycle can be made by joining the strings in this fashion .
Example Input : array=[“ABC”, “CDE”, “EFA”]
Output : Yes
Example Input : array=[“ABC”, “CDE”, “EFG”]
Output : No
I told him that, we can simply make a graph, by connecting every possible pair of strings, and then we just need to use any standard algorithm for cycle detection. He then asked me to write the code for cycle detection in graph. He appreciated for the quick response, and was satisfied with my code. I was then asked the following DP problem,
There are n stones, in a line, along the width of a river. Stepping on the stones can be risky, as they have a probability of getting sink once you step on them. So, you are given an array of size n, where ith element denotes the probability of not sinking when you step on that stone. Also, these stones are not equally distant, so you are given another array, where ith element represents the difference between (i+1)th and ith stone. If you can make a jump of atmost l, find the maximum probability of crossing the river.
I told him, this is a DP problem, and can be thought as a variation of standard LIS problem. He was satisfied by the approach. He then asked questions on my projects, these were not in much depth.
14 of 20 made it to next round.
Round 3: Technical Round 2. Time limit : 45-60 Minutes
I was asked the following algorithm question.
Given an array of integers, remove all subsets, that sums up to zero and print the remaining elements. If there are multiple possible solutions, print any.
Example Input: [1, 2, -4, 4, 2, 0, -3, 5]
Example output : [2, 5]
I told her, that we can sum the original array, and let the sum be S. Now the smallest subset of given array with sum equals S, will definitely be one of solution. And, this can be solved using the standard dp approach, to find a subset of given sum in an array. She was satisfied with the approach and didn’t ask me to code.
She then asked me basics of Oops, OS (deadlock, scheduling, virtual memory), DBMS (normalization, 1nf), and some basic concepts of Computer architecture.
She then asked me to design a system for Uber app, and I showed her the ER Diagrams and she was satisfied with it. I was then asked questions, related to my projects.
8 of 14 made it to next round.
Round 4: Technical Round 3. Time limit : 30-45 Minutes
I was asked the following tree questions,
I told him, we can solve it with a standard backtracking approach. He asked me to write the whole code, which I was able to write. He asked me another algorithm problem,
You are given a matrix, with all rows and columns sorted. Print the indices(row, col) for every occurrence of a given number.
I told him, in the worst case it will be O(n*n) only, but if you just want me to avoid the unnecessary comparisons, that can be achieved using break statements and modifying the range of column. He was satisfied with the approach, and asked me to code it.
I was then asked the following puzzle,
I knew the solution, and I directly answered it.
He then asked me another puzzle, https://www.geeksforgeeks.org/puzzle-20-5-pirates-and-100-gold-coins/
I didn’t know the puzzle, I took two-three minutes and told him my approach and 97 1 1 1 0 was my distribution. He said, you can optimize it a little bit more, and I figured out the answer 98. He appreciated me for the way I approached this problem.
Round 5: HR Round. Time limit : 10-15 Minutes
She asked me, how was the interview experience, did you like the process and some general things about the co-curricular activities mentioned in my resume.
3 of us, including me got the placement offer.
Thanks geeksforgeeks !