OYO Rooms visited NIT Patna for hiring SDE (Intern + FTE). Students of CSE and ECE having more than 6 CGPA were eligible. The online round which was held on Hacker Earth consisted of two sections and was 75 mins. The first section had 10 Technical MCQ from OOPS, DBMS, OS, and Computer Networking, while the second section consisted of 2 coding questions.
- Find the minimum number of moves needed to move from one cell of the matrix to another.
- Next Greater Frequency Element.
The first question was of 100 marks and the second one was of 50 marks. The MCQs were of variable marks, but there was no negative marks and no sectional time limit. 47 students were selected for the interview round which took place on Google meet.
Round 1(Interview for 45–60 mins): The interviewer was very nice and friendly. He started the interview by asking me to introduce myself. Then he started asking programming questions.
- Anagram Substring Search (Or Search for all permutations).
I directly told him the most optimized solution for this problem. He listened to my solution and asked about the time and space complexity of my approach. He seemed satisfied and asked me to code on my code editor while sharing my screen. Once I wrote the code, he moved on to the next question.
- Check if given Preorder, Inorder and Postorder traversals are of the same tree.
Just like the previous question, I directly told him the most optimized solution, and he asked me to code the solution. I wrote it down and the interviewer seemed to like my approach. We still had 10 mins left in the interview, so he asked me another question.
- A program to check if a binary tree is BST or not.
I told him the in-order traversal approach, and he asked why only in-order traversal. I answered it and he liked the solution. He just wanted to know my approach and didn’t ask me to write code for this question.
He ended the interview by asking me if I had a question for him or not. I was confident that I would get selected into the next round and as expected, I was called for the next round after 15 mins.
Round 2(Interview for 45-60 mins): The interviewer oddly was lying on his bed during the interview. He started the interview by asking me to introduce myself and whether I had any previous interview experience or not. Then he jumped onto the programming questions.
- Remove BST Keys in a given Range.
I started thinking about the approach and told him the brute force approach, but he wanted the full optimized solution. We started discussing the approach, but he won’t satisfy with my approach. I thought that my approach was correct, but he was adamant that although it was a unique approach, I wasn’t correct. Although, he told me to code down my approach and moved onto the next question (unhappily).
- Count Possible Decodings of a given Digit Sequence.
I directly told him the most optimized solution and within the next 5–10 mins wrote down the code and the interviewer was satisfied.
After this, he asked me about my knowledge of the Operating system. He asked me about Deadlock, how to prevent deadlock, and about various scheduling algorithms. He asked for my resume and was surprised to know that I was an electronics student. He then ended the interview by asking whether I had any questions for him.
I knew that I hadn’t performed well in this round and thought I wasn’t going to move ahead, but I knew that I had correctly written the code for whatever I said so there might be a chance, and this is what happened. I was called again for the next round after 10 mins.
Round 3(Interview for 75 mins): I was a bit tired because I had already given 2 rounds without any significant break time, but I kept my composure. The interviewer seemed nice and again started asking Programming questions.
- Boundary Traversal of a binary tree.
I already knew the solution to this question and explained to him the approach. He asked me to write the code and then moved onto the next question.
- Design a stack that supports getMin() in O(1) time and O(1) extra space.
First, I told him the solution where the stack size is doubled. Then he told me to think about a solution where the stack size isn’t doubled, and after a bit of thinking, I told him the approach, and he liked it. I then asked him whether I should write the code, to which he said NO, and moved to the next question.
- Given a vector of strings, and we need the find the minimum length of suffix that can represent every individual string.
collection = [“abcd”, “aed”, “abd”, “xyz”, “ft”, “fte”] ans = [“abc”, “ae”, “abd”, “x”, “ft”, “fte”]
I first made sure that I understood the question properly and told him that I will approach the question using Trie. The interviewer was impressed that I found out the correct DS so quickly and told me to move ahead with the approach. I told him that every node will have a count variable which will increment every time a node is visited while inserting a string in the trie. Now, once the trie is implemented, we will traverse the trie for every string and will continue traversal once we reach a node whose count variable is 1. (which would mean that this char is present in only one string at a particular index)
The interviewer seemed quite happy with my solution and asked me to write exactly what I had said. But here is when my body started giving up and I just wasn’t able to write the code properly. The interviewer asked me what the problem was and I told him that I was being interviewed continuously for 3.5 hours. Surprisingly, he understood my situation and asked me to just write the function and not the entire code which I successfully did, and then we ended the interview on a good note.
To my surprise, there was no HR round and even no Project discussion (But other students were asked).
19 students were selected for the role and I was one of them.