Samsung Research Institute Bangalore (SRI-B) Internship Interview Experience (On-Campus)
SRI-B visited our campus on 29th September 2020 for hiring interns for the 2021 summer. The process mainly consisted of a coding test followed by two interview rounds. for the coding test only people from CS, EEE, ENI, and Maths branches with CG above 6.9 were allowed to apply for the internship. And then there was a resume shortlisting where almost everyone who has applied has been selected. Let’s discuss the main parts now.
Online Coding Test: An online test is conducted on the Cocubes platform with proctoring enabled. The test consisted of only 3 coding questions to be completed within a time of 1 hour. Different people got different sets of questions. We were not allowed to use STL libraries(questions did not even require it). The questions asked me are
- Given a 2d array of integers sorts them row-wise.
- Convert a given tree to its Sum Tree
All these questions have been asked previously in some other colleges so reading the archives on geeks for geeks is highly important. As I have already seen and practiced these questions I could easily code them fast which helped me in my selection for interviews. from around 187 students 26 students were shortlisted for the interview rounds. As most of the people could solve the three questions the selection was mainly based on the timing of submission.
Interview Rounds: There were two interview rounds. Both of them were technical rounds and No HR round was conducted. They were hosted on Skype where the interviewer shared a Google doc where some pseudo code needs to be written for the coding questions.lets discuss the questions in detail
Round 1: The Round started with our introductions to each other. Then he went on through the subjects I have written on my Resume. I am presently Doing machine learning as an elective, so he went to ask questions about it. I just reminded him gently saying I am not good enough in it as I just started exploring. So he went on asking some simple questions on probability like
- There are 3 red 4 blue and 5 green how many ways can you pick 2 balls at a time such that no ball is blue?
- There are Three unbiased coins what is the probability of getting at most 2 heads? I solved the above questions using the basic long approach to which he replied it can be done in a simple manner, but he was ok with it.
So now he shared Google doc and asked me about my favorite data structure. I said stacks and queues. So he asked me to implement stack using queues? I have done this, and then he asked whether I am comfortable with arrays. I said Yes. So the following questions were asked.
- Given two arrays A, B of size n,n-1 where A and have similar numbers except one which is present in A but not in B. We need to find this number?
A = 8 9 5 1 7
B = 1 9 7 5
Answer here is 8.
I have answered it using two approaches one using sum and the other by xor. He was looking for the xor approach.
The second question was something like this Find any one of the multiple repeating elements in read-only array, the question looks easy, but he wanted O(1) space complexity.
Given a Binary tree check whether its BST or not? (https://leetcode.com/problems/validate-binary-search-tree/)
I have given a wrong solution to this question initially, so he gave an example where it went wrong and then I corrected it and gave the correct approach to which he was satisfied.
This round happened for an hour Throughout the Interview Interviewer was friendly and has been supportive where I was stuck and helped me. It is highly important to be talking about your approach while you are coding.
Round 2: Round 2 started with a discussion about projects I have mentioned in my resume. He went asking deep details about projects. Please beware of write projects which you don’t have a full idea about. Then in the total interview, there were no coding questions asked. The total interview was of OOP concepts and some amount of DBMS and on request at last he asked a question on DSA. The questions were.
- What is the role of destructor? And when shall it be used?
- What are the different types of joins and explain?
- Explain some loop concepts?
- Difference between abstraction and encapsulation? Give an example of explaining the same?
- Some other OOP questions
- Finally, on my request, he asked a DSA question. What are the differences between merge sort and quick sort?
- The follow-up question was to give an example where one would be better compared to others? I gave an example he did not seem satisfied and asked
Given a very large unsorted Linked List of integer data which of the sorts among merge sort and quick sort would be better to sort the elements?
So he ended the round 2 after the above question and said you are done with the process and HR will get to you. Finally, I received a mail in the night that I was selected.