# Arcesium Internship Interview Experience (On-Campus)

• Difficulty Level : Hard
• Last Updated : 16 Oct, 2021

Eligibility criteria: 7 CGPA for Computer Science and 8 CGPA for ECE and ELECTRICAL Branch

Round 1: Online Assessment

Aptitude and Coding Round and This round consisted of 3 parts

• Quantitative Aptitude 15 questions  20 minutes
• Technical Aptitude 15 questions  15 minutes
• Coding Test 2 questions  45minutes
• The quantitative Aptitude section consisted of questions related to time and work, age-related questions,
• family relations etc.
• The technical Aptitude section consisted of questions related to the print output of the following program,
•  debugging code, MySql queries, OOPS, etc.
• Technical Aptitude questions were of medium-high difficulty level.

Coding Question:

• Given two integers a and b. You can do one operation ( eg x to x/2 )to any of the one integers at a time.
• Calculate the minimum operations required to make both integers equal.
```eg - 10 75
minimum operations = 7 ;```
• Hint: Keep on dividing the bigger numbers by 2 until you get both of them equal.
• The second question was very difficult and no one according to my knowledge was able to solve it.
• The question was from strings. The question was something like this. I don’t remember the exact question.
• You are given a string and a lot of patterns. The patterns might be substrings of each other. You have to
• find all indexes in the string where the first pattern matches with the string and that index is not matched by any other given pattern.

Out of Approx 200 students, 23 were selected for the interview. Those who solved one coding question and did well in the Aptitude round were selected.

Round 2: Technical Round 1

There were 3 technical rounds of 45 mins each and 1 HR round of 20 minutes (varies).

• The interview started with a discussion on arrays and linked lists. I was asked the structure of
• the linked list. Follow up, if you have to insert an element at a specific position, what would you
• prefer, linked list or array? Next, you have an array of size 10, you want to insert another
• element into the array, how would you insert it? We create a new array of double the size, copy
• the original element and then add the element. Follow up, Why did you double the size, why not
• triple it?
• Given a linked list, find the starting point of the loop in the linked list. If you know the proof
• of the Floyd Cycle Detection Algorithm, that’s a plus, I wasn’t able to prove it correct.
• There were follow-up questions. He made changes to function, instead of passing the pointer,
• he pass the node as a value. The value of other nodes in the linked list might be changed.
• Given two strings, s1 and s2. Find if the characters of s2 can be reshuffled to create s1. We
• had to check if the frequency of each character is the same or not. He asked which data
• structure I would use to store, I said I would use a vector of size 256 as ASCII has that many
• characters. He asked about hashmap. We could also use unordered_map to search, insert and
• delete in constant time. So, he asked why did I use vector then. The answer was, even though,
• unordered_map takes constant time but the constant factor in itself is very large while for vector
• it is quite low. He asked about the worst time complexity of unordered_map and when does it
• occur, collisions, how can we avoid them. How does hash map works, why does it take constant
• time?
• Given a binary tree, check if it is a BST. There were some follow-up questions again.

Round 3: Technical Round 2

• There was a discussion about my project. Which technologies I have used and the reason for using them. Why did I use a NoSQL database, Among NoSQL databases why MongoDB? How
• Do many rest endpoints do my project have? Middlewares? What does happen when a user creates an account? Present load the application can handle? How can you scale it?
• He asked me to write a SQL query. Given a table containing roll_id, course_id remarks, score
• Print the roll_id of students securing the top 3 highest marks of each subject.
• Questions about ACID properties? How does the database maintain consistency? How does it maintain durability? Normalization and its forms?

Round 4: Technical Round 3

• There was a slight discussion on my project again. This round was focused on OOPS and OS.
• 4 pillars of OOPS? How is abstraction achieved? Why do we need inheritance? Example? Then, he wrote two classes and asked me to inherit one of the classes. Access specifiers? Why
• do we need them? Questions about the dynamic allocation of memory? How to de-allocate
• them? What happens if we don’t de-allocate it? Garbage collector? Destructors? If class B
• inherits from class A, can the pointer of class A type point to the object of class B? What
• happens if a class inherits from two classes and both have a common method? Compile-time
• error or a run-time error? How do we avoid them? Virtual functions? Compile-time polymorphism
• vs run-time polymorphism? Implement their code. Scheduling algorithms? Which is the best?