Microsoft Azure | SSE | Bangalore | Oct 2021 | OFFER
Anonymous User
2877

MICROSOFT | SSE | Bangalore

Status: SDE2, 5+ yoe
Position: SSE at Microsoft
Location: Bangalore, India
Date: Oct 22, 2021

Codality Test ->

3 Questions - All EASY

  1. Give a string return true if all 'a' comes before 'b'. eg. ->
'aaabbb' = true 
'abb'  = true
'abab' = false
'bbb' = true
  1. The code of binary search was given. You have to do some correction in it. (MAX 3 corrections are allowed)
  2. It's a OOO question.

All questions were easy.

F2F-1
Q1. Given a list of numbers and a m, jump to mth position starting from index 0 and remove the next element from the list. Do this until there is only one element left in the list.

Eg. List -> [1, 3, 5, 4, 2] and m = 2, Output -> [2]
[1, 3, 5, 4, 2]  -> [1, 3, 5, 2] -> [1, 5, 2] -> [5, 2] -> [2]

Every time you jump m postions from current position, you need to remove next element.

Since you are starting from index 0, 
3 will be remove as you jump to 5 (at index 2) -> [1, 3, 5, 2]
From 5, you jump to 1, so 3 will be removed -> [1, 5, 2]
From 1, you jump to 2, so 1 will be removed -> [5, 2]
From 2, you jump to 2 again, so 5 will be removed -> [2]

Solution I proposed ->

-> Created a circular doubly linked list. Iterate and remove m elements. 
-> Optimaization -> Reduced the number of iteration, if m > list size - 
for this case, to iterate to next element, we need to do listsize % m.
Since list size is changing everytime we remove an element, we need to do this everytime, when we remove an element.

F2F-2
Q1. They gave one piece of code and ask to do a code review.
Q2. Implement Tiny URL - HLD discussion only | LLD implementation with OOO in mind.

F2F-3
Q1. Discussion on previous projects. Mostly focused on scalability, availability and fault tolerance.
Q2. Given list of connected triangles, return the boundary edges.

Eg -> image

Input -> [[P1(0,0), P2(0,1), P3(1, 0)], [...], ..]

For simplicity, we removed the cordinates then the input will be ->

Input -> [[P1, P2, P3], [...], ..]

Key to solve this question ->

Boundary Edge will be the edge which is a part of only 1 triangle
So create a Map<Edge, NumberOfTimes> and 
parse the list of triangles. Make count of number of times you encounter an edge. 
If at last the edge count is 1, then this is a boundary edge.

Hiring Manager -
Q1. Discussion mostly on previous projects.
Q2. BT questions
Q3. 'Tell me about a time you' questions

Got Offer for SDE2. Will share the compensation soon.

PS ->
Updated the F2F-1 with the solution I proposed.

Compensation - https://leetcode.com/discuss/compensation/1561991/Microsoft-Azure-or-SSE-or-Bangalore-or-Nov-2021

Comments (7)