Filter interviews by
I applied via Campus Placement and was interviewed before Mar 2021. There were 2 interview rounds.
Questions included topics such as DSA, OS, DBMS and few ML concepts too.
This was included in aptitude test itself. 3 questions were asked, 1 was of basic String Logic, another one was a DP question and other was a Graph question.
Level of difficulty : Medium - Hard
Top trending discussions
Count the number of '-' characters in a string and return 1 if it matches the given number, else return 0.
Use a loop to iterate through each character in the string and count the number of '-' characters.
Compare the count with the given number and return 1 if they match, else return 0.
Handle edge cases such as empty string or negative number input.
Functions to create and delete nodes in a stack
To create a stack, initialize a top pointer to null
To push a node, create a new node and set its next to the current top, then set top to the new node
To pop a node, set top to its next and return the popped node
To delete the stack, pop all nodes until top is null
Code for producer-consumer problem using mutex
Create a shared buffer with a fixed size
Create a mutex to control access to the buffer
Create a semaphore to keep track of the number of items in the buffer
Create a producer thread that adds items to the buffer
Create a consumer thread that removes items from the buffer
Use mutex to lock the buffer while adding or removing items
Use semaphore to signal when the buffer is full o
Mutex and Semaphore are synchronization primitives used in multi-threaded environments.
Mutex is used to provide mutual exclusion to a shared resource, allowing only one thread to access it at a time.
Semaphore is used to control access to a shared resource, allowing multiple threads to access it at a time.
Mutex is binary, meaning it has only two states - locked and unlocked, while Semaphore can have multiple states.
Mute...
Virtual addressing is a memory management technique that allows a process to use a range of memory addresses independent of physical memory.
Virtual addresses are mapped to physical addresses by the memory management unit (MMU)
Virtual addresses are allocated to a process during its execution
Virtual addressing allows for efficient use of physical memory by allowing multiple processes to share the same physical memory
Exam...
Deadlock is a situation where two or more processes are unable to proceed because they are waiting for each other to release resources.
Prevent deadlock by using a proper resource allocation strategy
Avoid holding onto resources for too long
Use timeouts to release resources if they are not being used
Implement a deadlock detection and recovery mechanism
Avoid circular wait by imposing a total ordering of all resource types
Program to find the only duplicate in an array
Create a hash set to store elements as they are encountered
If an element is already in the hash set, it is a duplicate
Return the duplicate element
Virtual memory is still needed even with large physical memory. Paging helps manage memory efficiently.
Virtual memory allows for larger programs to run than physical memory can handle
Paging helps manage memory efficiently by swapping out unused pages to disk
Virtual memory also allows for memory protection and sharing between processes
Examples of programs that require virtual memory include video editing software and la
To find the middle of a linked list, use two pointers - one moving at twice the speed of the other.
Initialize two pointers - slow and fast
Move the slow pointer one step at a time and the fast pointer two steps at a time
When the fast pointer reaches the end of the list, the slow pointer will be at the middle
Time complexity of building a heap using linked list and arrays
Building a heap using linked list takes O(nlogn) time complexity
Building a heap using arrays takes O(n) time complexity
Linked list implementation is slower than array implementation
Yes, static variables can be defined in header files.
Static variables defined in header files have global scope within the file.
They can be accessed by any function within the file.
However, if the header file is included in multiple source files, each file will have its own copy of the static variable.
This can lead to unexpected behavior if the variable is modified in one file and then accessed in another.
It is general...
Yes, constant and volatile can be used together.
Constant variables are read-only and cannot be modified.
Volatile variables are used to indicate that the value may change unexpectedly.
Using both together can be useful in multi-threaded environments.
For example, a constant pointer to a volatile variable can be used to ensure thread safety.
Bi-directional linked list allows traversal in both directions, making it useful for certain algorithms.
Each node in the list has a reference to both the previous and next nodes.
Insertion and deletion operations are more complex than in a singly linked list.
Examples of use include implementing a browser's back and forward buttons or a text editor's undo and redo functionality.
OOPs properties and examples with applications
Encapsulation: bundling of data and methods within a class. Example: Java class. Application: data hiding and security.
Inheritance: creating a new class from an existing class. Example: subclass. Application: code reusability and extensibility.
Polymorphism: ability of an object to take on many forms. Example: method overloading. Application: flexibility and modularity.
Abstr...
Pointers and arrays are related concepts in C programming. Pointers hold memory addresses while arrays hold a collection of values.
Arrays are a collection of values stored in contiguous memory locations.
Pointers hold the memory address of a variable.
Arrays can decay into pointers when passed as arguments to functions.
Pointer arithmetic can be performed on pointers to access memory locations.
Pointers can be used to dyna
It depends on the specific use case and input size.
For small input sizes, simple algorithms like insertion sort or selection sort may be sufficient.
For larger input sizes, more complex algorithms like merge sort or quicksort may be more efficient.
For nearly sorted input, insertion sort may be the fastest.
For input with many duplicates, counting sort or radix sort may be the best choice.
For input with a known range, buc...
Check if a string is palindrome or not
Reverse the string and compare with original
Compare first and last characters and move towards center
Use recursion to check if first and last characters are equal
I applied via Referral
Find A-B of two sorted arrays A and B in O(m+n) time complexity.
Create two pointers, one for each array, and compare the elements at those pointers.
If the element in A is smaller, add it to the result array and move the A pointer forward.
If the element in B is smaller, move the B pointer forward.
Repeat until one of the pointers reaches the end of its array.
Add any remaining elements in A to the result array.
Time comple...
The routine should output the elements of the inorder traversal of a binary tree one by one in each call.
Implement an inorder traversal algorithm recursively
Use a global variable or pass a reference to keep track of the current element
Call the routine repeatedly to get the next element in each call
Program to find minimum semesters required to complete courses with prerequisites
Create a graph with courses as nodes and prerequisites as edges
Use topological sorting to find the order of courses to be taken
Calculate the minimum number of semesters based on the order obtained
Handle cases where there are cycles in the graph
posted on 22 Aug 2016
I applied via Campus Placement
posted on 2 Dec 2016
I applied via Campus Placement and was interviewed in Dec 2016. There were 6 interview rounds.
posted on 3 Dec 2015
posted on 20 Jan 2015
The code inserts a given string at the specified position in a compact data structure that stores strings sequentially.
To insert the string at the ith place, we need to shift all the strings after the ith position by the length of the new string.
We can use a loop to iterate through the data structure and find the ith position.
After finding the ith position, we can calculate the new length of the data structure and allo...
Constructing parse tree for ((a+b)*c)/d using data structures.
Use stack data structure to keep track of operators and operands.
Start with the innermost parentheses and work outwards.
Create a node for each operator and operand and link them together.
The root node will be the final result of the expression.
Example: ((a+b)*c)/d can be represented as / -> * -> + -> a, b, c, d.
Merge 'n' identical linked lists from 'n' salespersons to handle insertions, deletions, and updates.
Iterate through each linked list and merge them into a single linked list
Handle insertions, deletions, and updates by traversing the merged list and making necessary changes
Repeat the process for the next day by resetting the merged list
I was interviewed in Oct 2016.
My hobbies include hiking, playing guitar, and cooking.
Hiking: I enjoy exploring nature trails and challenging myself physically.
Playing guitar: I love learning new songs and improving my skills.
Cooking: I like experimenting with different recipes and creating delicious meals.
In 5 years, I see myself as a senior software developer leading a team and working on complex projects.
Leading a team of developers
Working on complex projects
Continuously learning and improving my skills
Contributing to the growth and success of the company
I want to join DELL because of their innovative technology solutions and strong reputation in the industry.
DELL is known for their cutting-edge technology solutions which align with my passion for software development.
I admire DELL's strong reputation in the industry and their commitment to customer satisfaction.
I believe joining DELL will provide me with opportunities for growth and career advancement.
Software Engineer
18
salaries
| ₹0 L/yr - ₹0 L/yr |
Machine Learning Engineer
17
salaries
| ₹0 L/yr - ₹0 L/yr |
QA Engineer
8
salaries
| ₹0 L/yr - ₹0 L/yr |
Software Developer
4
salaries
| ₹0 L/yr - ₹0 L/yr |
Associate Software Engineer
4
salaries
| ₹0 L/yr - ₹0 L/yr |
Canon
Nikon
Sony
Samsung