Open In App

# Synopsys Interview Experience (For R&D Engineer, Sr I)

I was interviewed at Synopsys Bangalore for R&D Engineer, Sr I post. There were two rounds of telephonic interviews and then six rounds of face to face technical interviews and one round of HR discussion.

Telephonic Round 1: They asked me the following questions.

1. Discussion regarding the current job.
2. The efficient way to traverse 2D array(column vs row traverse).
3. Run-time polymorphism (Virtual function)
4. Copy constructor and assignment operator.
5. Diamond problem and how to overcome it.
6. Detect loop in a link list.
7. Construct Balance Binary Tree from a sorted link list.
8. From a stream of integer do the operation getMax(). getMax() returns the max value from the stream and next time this function will return the max from the rest of the elements.

Telephonic Round 2:
Game of two stacks (https://coderinme.com/game-two-stacks-hackerrank-problem-solution/)

F2F Round 1: They asked me the following questions.

• Create Singly link list to Doubly link list where prev pointer of an ith node will be pointing to (i- step)th node, the step will be given in run-time. for all i < step, prev will be null.
2. Find a cycle in a Directed Graph.
3. Problem-based on Tree traversal

F2F Round 2:

1. Given Sum and Count. You can use the only integer from 1-9 (can use more than one time) to make the Sum. The restriction is that the number of the element should be equal to Count. Find all possible combinations.
Example:

```Sum = 10 and Count = 2
Result is (1, 9), (2, 8), (3, 7), (4, 6) and (5, 5)
1 + 9 = 10
2 + 8 = 10
3 + 7 = 10
4 + 6 = 10
5 + 5 = 10```
2. Asked me to write + operator overloading code for a class that has only one integer member variable. The class has a parameterized constructor. I proposed two approaches
• Approach 1:

A operator + (A const &src) {
return (src.val + val);
}
Explained how does it work.

• Approach 2:

A operator + (A const &src) {
A res;
res.val = real + src.val;
return res;
}

I added copy constructor for future enhancement of the class. He removed it and asked whether the code will work or not. Then detail discussion on copy constructor.

F2F Round 3:

1. In how many different ways can the letters of the word ‘CORPORATION’ be arranged so that the vowels always come together?
2. Difference between C style array and Vector

F2F Round 4:

1. Discussion on memory manager. How does memory manager help to allocate memory?
2. Code analysis of a C program that checks whether two strings are an anagram or not.
3. Code analysis of a code that allocates memory using malloc until malloc returns NULL.
4. Why do you want to leave your current organization?

F2F Round 5:

1. Detail discussion on Virtual function working principle. What will happen if a virtual function has any default value parameter?
```class A{
A(){}
virtual void foo(int var = 10) { std::cout<< var; }
};

class B: public A{
B(){}
void foo(int var = 7) { std::cout<< var; }
};

int main(){
A *ptr = new B();
ptr->foo();
delete ptr;
return 0;
}
```
2. Colour all the countries or states of Geographical maps where no two adjacent countries/states cannot be assigned the same color.

F2F Round 6:

1. Why Synopsys?
2. Discussion regarding the current job and my current role.
3. There is an audio player given which picks up a random song from the playlist and plays it. The song should not be repeated until all songs are played at least once. The sequence number of the songs are given in an array. Design such audio player without using any extra space.
https://practice.geeksforgeeks.org/problems/picks-up-a-random-song-from-the-playlist-and-plays-it
4. Create 32×1 MUX using 2×1 MUX.
5. Discussion on memory allocation using malloc.
6. What will you do if you feel your friend is getting favor from your manager?