Recently, Amazon held a Pool Campus drive at Pune in which students from various colleges in the city had appeared.
Job Profile: Software Development Engineer (SDE-1)
Round 1: (Online coding test on Hackerearth):
First, there was an online coding test hosted on Hackerearth consisting of 2 easy coding questions and 5 mcqs (easy).
Around 300 people were shortlisted for the final interviews.
There were a total of 4 face to face technical interview rounds. All the rounds were elimination rounds.
Technical Interview (Round 1):
It started with a detailed discussion about my projects.
Then straight away jumped to problems.
You are building a website in which users have to enter usernames. If username exists append a number in the following way and return the new username.
If first input is “abc”, “abc” itself should be returned as it isn’t already existing
If the next input is again “abc”, the string “abc0” has to be returned similarly you’ve to append numbers in an increasing manner as mentioned, if username already exists.
If next input was “abcd”, “abcd” itself should be returned
Followed by “abc”, output should be “abc1” (Because “abc” and “abc0”, both were taken)
And so on..
So given any input string give the output username.
I suggested that it can be done using the Trie data structure. I was then asked to write the code on paper.
Given an array of N integers find the sum of all numbers whose number of set bits is at least two.
Expected time complexity: O(N) strictly
Problem reduces down to finding the sum of numbers that are not an exact power of 2. Now to check if any number is an exact Power of 2 in constant time, bitwise operations can be used.
For any number N, it is a perfect power of 2, if (N&(N-1)) equals to 0.
I qualified and was called for the next round.
Technical Interview (Round 2):
This was also a DSA round.
This was the problem asked. https://www.geeksforgeeks.org/vertical-sum-in-binary-tree-set-space-optimized/
Fully space optimized and time optimized codes were expected.
Cleared the round.
Technical Interview (Round 3):
Again, another DSA round. Here are the problems.
Technical Interview + Hiring Manager (Round 4):
This was a technical plus hiring manager round.
The round started with a detailed discussion about my projects followed by 2 DSA questions:
1. Code to check if I given linked list of characters is a palindrome or not (Link)
2. Given the cost of stocks on each day and you can buy and sell exactly one stock you have to maximize the profit. (Link)
Later, I was asked questions like:
Why Amazon, why should we hire you, will you be able to relocate, etc and also a small discussion about the Ashwin-Buttler Incident as it turned out that the interviewer was also a cricket follower 🙂
Overall, I would like to say that the interviewers were really friendly and always provided hints when needed. It was more like a discussion rather than an ‘interview’. Don’t hesitate in asking hints, they’re always there to help. All the best.
Finally, got the offer after a week. 🙂