Masters Intern from top 50ish CS school
Applied: 08/21/2019
Received OA: 09/18/2019
Passed OA confirmation: 10/11/2019
Received VO schedule link: 10/23/2019
Took Final VO: 11/01/2019
Received Offer: 11/06/19
OA Results:
OA1 - 7/7 on debugging portion
OA2 - I couldn't get any test cases to pass for the first question lol. I was returning the movie times instead of the indexes I think. I passed all cases for the second question.
Movies on Flight
Substrings of Size K with K Distinct Characters
OA3 - I guess I did well? It was my second time taking it as I did OA3 from previous new grad interview.
I'm currently waiting on results after having finished the final VO round yesterday, 11/01/2019.
VO Experience:
15 min of behavioral. "Tell me about a time when you felt under pressure that you wouldn't be able to get something done or had to take a pivot at the last minute". Answered, and then interviewer asked more follow up questions from my answer.
5 min worth of data structure trivia. Difference between an ArrayList over a LinkedList? What about search complexity? When would you want to use one list over the other?
Last 25 min were spent solving two technical questions. Both of which are not NOT on LC, but would have to categorize it as easy... The first question utilized a Map<Character, Character> and returned a String. The second question, depended on the function I wrote for the first one. Both questions utilized hashmaps, with second question returning a Map<String, List<String>>. I actually gave an approach using a Trie/DFS for the second question, and the interviewer said that he would expect that approach from a senior engineer, not from an intern! He told me to do a more simple approach due to time. Asked me time complexities for both questions after solving both.
Overall it was surprisingly "too" easy for the final round. The OA questions were 10x harder than the questions I got in VO. I will update this post with the question once I get my results.
I previously interviewed for new grad a couple of months ago (previous post). Comparing it to intern interview I did, I felt new grad final round definitely focused more on algorithms whereas this intern interview mostly tested knowledge of data structures.
Question 1: You have a bunch of phone numbers (e.g. 1-800-248-CATS, 1-800-248-DOGS, 1-800-248-LEET, etc). If given the letters of the phone number (CATS, DOGS, LEET), suggest a data structure to store how you would convert the letters to numbers and write a function to do it. The letters map to the numbers on a dial pad:
123
456
789
*0#I suggested to use a Map<Character, Character> to store the letter to number mapping 26 entries of them. (A -> 2, D -> 3, etc). We have to return a String of the letters concerted to number equivalent. CATS -> 2287
private Map<Character, Character> letters2num;
public String convertLetters(String letters) {}Question 2: Since many numbers of phone numbers can have a bunch of different words associated with it (i.e. CATS == BATS), suggest a data structure to search/store these numbers with their associated words together if given the word.
I suggested using a Trie/DFS to store the words, but he said while that would be the most optimal solution, to do it a simpler way due to time. I suggested to store the number as a key and a list of all possible words with that key, in an array list. You have to use the function from previous question to convert the word.
{2287 : BATS, CATS}
// Use convertLetters method to convert the word.
public Map<String, List<String>> mapWords(List<String> words) {}O(N * M)
Overall pretty easy... took < 20 min for both questions.