i
Synopsys
Filter interviews by
I applied via Campus Placement and was interviewed before Jun 2019. There were 3 interview rounds.
I was interviewed in Nov 2016.
Need more context. What needs to be done with the large rectangle?
What are the dimensions of the rectangle?
Is it a 2D or 3D object?
What is the context of the problem?
Are there any constraints or limitations?
What tools or programming languages can be used?
Derive a formula to determine how many smaller rectangles fit into a bigger rectangle given their dimensions.
Calculate the number of times the smaller rectangle can fit into the bigger rectangle horizontally and vertically
Divide the width of the bigger rectangle by the width of the smaller rectangle to get the horizontal count
Divide the height of the bigger rectangle by the height of the smaller rectangle to get the ve...
At least 4 points are required to draw a rectangle.
A rectangle has 4 sides and 4 corners, so at least 4 points are needed to define those corners.
The points must be arranged in a specific order to form a closed shape with 4 sides.
Additional points can be used to add details or modify the shape of the rectangle.
The number of points required may vary depending on the software or tool used to draw the rectangle.
Answering how to calculate new coordinates of a scaled rectangle and providing a program for it.
To calculate new coordinates, multiply the original coordinates by the scaling factor
Scaling factor can be calculated by dividing the new length/breadth by the original length/breadth
Program can take input of original coordinates, scaling factor, and output new coordinates
Example: Original coordinates: (0,0), (0,5), (5,5), (...
I was interviewed in Nov 2016.
Synopsys interview questions for popular designations
Strcpy() is used to copy strings while Memcpy() is used to copy blocks of memory.
Strcpy() only copies until it reaches a null character while Memcpy() copies a specified number of bytes.
Strcpy() is safer to use for copying strings as it automatically adds a null character at the end.
Memcpy() can be used for copying non-string data such as arrays or structs.
Print words from EOF to start of a huge file of strings.
Read the file in reverse order
Split the file into words
Print the words in reverse order
Height and balance are important factors for a binary tree's performance and efficiency.
Height of a binary tree is the maximum number of edges from the root node to a leaf node.
A balanced binary tree has a height difference of at most 1 between its left and right subtrees.
Balanced trees have faster search, insertion, and deletion operations compared to unbalanced trees.
Examples of balanced binary trees include AVL tree
Size of a binary tree refers to the total number of nodes present in the tree.
The size of a binary tree can be calculated recursively by adding the size of its left and right subtrees and adding 1 for the root node.
The size of an empty binary tree is 0.
For example, the size of the binary tree with root node 1, left subtree with root node 2 and right subtree with root node 3 is 3.
Both #define and typedef are used for defining aliases for data types in C/C++.
Use #define to define constants or macros.
Use typedef to define new data types.
Syntax for #define: #define identifier value
Syntax for typedef: typedef existing_type new_type_name;
Example of #define: #define PI 3.14159
Example of typedef: typedef int myInt;
main() vs int main() vs void main() and why return statement is necessary in main()
main() is not a standard function signature and should be avoided
int main() returns an integer value to the operating system indicating the status of the program
void main() is not a standard function signature and should be avoided
return statement in main() is necessary to indicate the status of the program to the operating system
Merging two sorted arrays using recursive approach with LinkedList.
Create a LinkedList to store the merged array
Compare the first elements of both arrays and add the smaller one to the LinkedList
Recursively call the function with the remaining elements of the array
If one array is empty, add the remaining elements of the other array to the LinkedList
Negative numbers are represented in memory using two's complement notation.
Two's complement is a mathematical operation that allows negative numbers to be represented using the same binary format as positive numbers.
The most significant bit (MSB) is used as a sign bit, with 0 indicating a positive number and 1 indicating a negative number.
For example, the decimal number -5 would be represented in memory as 11111011 in ...
Integer overflow occurs when a value exceeds the maximum limit of its data type. It can lead to unexpected behavior and security vulnerabilities.
Use data types with larger ranges to store large values
Check for overflow conditions and handle them appropriately
Avoid performing arithmetic operations that can result in overflow
Use libraries or frameworks that have built-in protection against overflow
Perform input validatio...
Finding Nth rank student from a student table with marks
Sort the table in descending order of marks
Retrieve the Nth row from the sorted table
Handle ties by considering the next rank as N+1
Use SQL query like SELECT * FROM student ORDER BY marks DESC LIMIT N-1, 1
Static variables can follow a pattern based on their declaration and scope.
Static variables retain their value between function calls
They are initialized only once, at the start of the program
They have a default value of 0 if not initialized explicitly
They can be declared within a function or outside it
The scope of a static variable is limited to the block in which it is declared
To check if a string represented in a linked list is a palindrome, use two pointers to traverse the list and compare the values.
Use two pointers to traverse the linked list, one moving at a normal pace and the other moving twice as fast.
When the fast pointer reaches the end of the list, the slow pointer will be at the middle of the list.
Reverse the second half of the list and compare it with the first half to check if
Get interview-ready with Top Synopsys Interview Questions
Algorithm to find GCD
Use Euclid's algorithm to find GCD
Divide the larger number by the smaller number
If remainder is 0, smaller number is GCD
If remainder is not 0, repeat with smaller number and remainder
In-order traversal is a way of visiting all nodes of a binary tree in a specific order.
Start at the root node
Traverse the left subtree recursively
Visit the root node
Traverse the right subtree recursively
Matrix traversal algorithm is used to visit each element of a matrix in a specific order.
Matrix traversal can be done using nested loops.
There are different traversal orders like row-wise, column-wise, spiral, diagonal, etc.
Traversal can be optimized using techniques like caching and parallel processing.
Data structure is a way of organizing and storing data in a computer so that it can be accessed and used efficiently.
Data structures are used to manage large amounts of data efficiently.
Common data structures include arrays, linked lists, stacks, queues, trees, and graphs.
Choosing the right data structure for a particular problem can greatly improve the efficiency of an algorithm.
Understanding data structures is essent...
Top trending discussions
Some of the top questions asked at the Synopsys interview -
The duration of Synopsys interview process can vary, but typically it takes about less than 2 weeks to complete.
based on 65 interviews
Interview experience
based on 351 reviews
Rating in categories
Hyderabad / Secunderabad,
Bangalore / Bengaluru
2-6 Yrs
Not Disclosed
Hyderabad / Secunderabad,
Bangalore / Bengaluru
12-20 Yrs
Not Disclosed
R&D Engineer
148
salaries
| ₹7.3 L/yr - ₹32 L/yr |
Senior R&D Engineer
99
salaries
| ₹15 L/yr - ₹40 L/yr |
Staff Engineer
88
salaries
| ₹22 L/yr - ₹45.5 L/yr |
Security Consultant
60
salaries
| ₹5.8 L/yr - ₹21 L/yr |
Applications Engineer
58
salaries
| ₹11 L/yr - ₹25.6 L/yr |
Cadence Design Systems
Mentor Graphics
Ansys Software Private Limited
Infineon Technologies