Technical phone screen (45 mins):
Onsite (5 rounds):
4 rounds of algorithm+coding, 1 round Googleyness and Leadership and 1 lunch interview (no notes taken)
Round 1: [Googleyness and Leadership] [ This was the last round chronologically during onsite ]
Round 2:
Round 3:
Round 4:
Round 5:
Variation of these 2 problems:
https://leetcode.com/problems/word-ladder
https://leetcode.com/problems/open-the-lock
There is an init state, end state and safe states. If it is posssible to go from the init state to the end state (using the safe states), do so in minimum number of iterations and return
'disarm'. If not possible, return 'run'.
Values for a state can either be a '0' or a '1'. Only one value of the state can be changed at a time.
Each transformed state must exist in the safe states.
Examples as below:
init: 000
end: 111
safe: 001 010 100 011 111 101
return: disarm [ 000 --> 001 --> 101 --> 111 ]
init: 00
end: 11
return: 00 11
return: run