Round 1: Online assessment consisting of 4 sections conducted on the AMCAT platform.
- Code Debugging: 7 questions C/C++/Java (20 minutes)
- Coding: 2 questions (70 minutes)
- Workstyle Assessment: (20 minutes)
- Reasoning Ability: 24 questions (35 minutes)
In the coding section, the questions were,
Around 16 students cleared the test out of 185.
Round 2 (F2F Technical Interview): This was held on Amazon Chime(A video calling platform) and the interview lasted for 1 hour.
- First, the interviewer asked to introduce myself, and then he shared about his role and projects he’s working on. It was a 2-3 minute formal introduction and went straight to the coding question.
- You are tasked to develop a simple search engine that also takes care of correcting the spelling mistakes and shows the words matching the given work in the dictionary. (It is also given that user can make at most one spelling mistake)
Input: D = ["abc", "bcd", "ad", "ab"] User: 1. "bbc" Return ["abc"] 2. "bb" Return ["abc", "ab", "ad"]
- He asked me to explain the approach first.
- Firstly, I shared a brute force approach and gave time and space complexities. I was asked to optimize.
- I shared a little optimized approach. The interviewer was expecting the most optimized solution.
- Finally, I told the trie data structure solution, and then I was asked to code it.
- I started coding the solution in the live coding environment and had a continuous talk with the interviewer discussing various edge cases and possibilities. He helped me a lot and was very friendly.
- I’m linking a GFG article for reference but the solution needs to be modified: Trie-Insertion-and-search.
- We then made a dry run through the code and found a bug and fixed it and also discussed Complexities.
- This took so much time, the interviewer was satisfied with the code and asked me if I have any questions.
- I was asked only one question but some of my friends were asked 2-3 questions in total.
Round 3 (F2F Technical Interview): This was also held on Amazon Chime (A video calling platform) and the interview lasted for 1 hour. The round started with a brief introduction from both the interviewer and me (after around 15 mins another interviewer joined in). He directly headed towards the coding questions.
- Asteroid Collision ( https://leetcode.com/problems/asteroid-collision/ )
We are given an array of asteroids of integers representing asteroids in a row.
For each asteroid, the absolute value represents its size, and the sign represents its direction (positive meaning right, negative meaning left). Each asteroid moves at the same speed.
Find out the state of the asteroids after all collisions. If two asteroids meet, the smaller one will explode. If both are the same size, both will explode. Two asteroids moving in the same direction will never meet.
- Started asking questions to clarify doubts on constraints.
- In a usual way first I shared a brute force approach and gave time and space complexities. I was asked to optimize.
- I gave an optimal stack solution and was asked to code it.
- I missed out edge cases which were later pointed out and I corrected the code.
- Dry run through the code and discussed Complexities.
- Single Element in a Sorted Array (https://leetcode.com/problems/single-element-in-a-sorted-array/)
You are given a sorted array consisting of only integers where every element appears exactly twice, except for one element which appears exactly once. Find this single element that appears only once.
- I shared the brute force approach and was asked to optimize.
- I gave 2 more approaches that were not the most optimized.
- Later I gave Binary Search Modification but couldn’t complete the code and was stuck confused wasn’t able to figure out what was going wrong.
- After a while, the interviewer asked me to switch to another question.
Sum of all the numbers that are formed from root to leaf paths
You are given a binary tree, where every node value is a digit (0 – 9). Find the sum of all the numbers which are formed from root to leaf paths.
For example, consider the following Binary Tree.
6 / \ 3 5 / \ \ 2 5 4 / \ 7 4
- I shared a solution and the interviewer asked me to explain the question asked.
- I was tensed for not finishing the previous code and misunderstood the question and gave an approach.
- Later I asked questions to clarify my doubts.
There are 4 leaves, hence 4 roots to leaf paths: Path Number 6->3->2 632 6->3->5->7 6357 6->3->5->4 6354 6->5>4 654 Answer = 632 + 6357 + 6354 + 654 = 13997
- I shared an approach and coded it which had bugs.
- Time was up and the interviewer asked me to stop and asked if I have any questions.
Result: Unfortunately, I did not clear the interview. Only 2 students were selected out of 16.
- Before jumping into the solution, carefully listen and understand the question properly, and avoid any assumptions regarding the problem. Ask doubts and clarify every detail of the question.
- Stay calm, positive, and focussed during the interview. (Don’t talk with peers before the interview)
- Be clear with your approach and try to consider all possible edge/corner cases.
- Try to familiarize yourself with the time and space complexity of every part of your approach.
- Be confident. If you are stuck somewhere the interviewer usually helps you out to find the right path. Just keep thinking aloud.
- Interviews have a slight luck factor and kind of day dependency. Just be confident and solve all the problems with a positive attitude.
- Practice questions from GeeksforGeeks and LeetCode and read recent interview experiences.
- Don’t get demotivated by rejections. Just do your best and improve every day, so you don’t regret anything from the preparation side.
Some interviews just don’t have a happy ending.