Filter interviews by
I applied via LinkedIn and was interviewed in Aug 2023. There were 3 interview rounds.
Top trending discussions
I applied via Referral
Swap kth and kth to last element of a singly linked list in one pass without knowing the length of the list.
Traverse the linked list using two pointers, one starting from the head and the other starting from kth node.
When the second pointer reaches the end of the list, the first pointer will be pointing to the kth to last node.
Swap the values of kth and kth to last node.
Handle edge cases such as k being out of bounds o...
Program to reverse the ordering of words in a sentence
Split the sentence into an array of words
Reverse the array
Join the array into a sentence
Program to find intersection point of two singly linked lists in O(n)
Traverse both lists and find their lengths
Move the head of the longer list by the difference in lengths
Traverse both lists in parallel until intersection point is found
Return the intersection point
Program to reverse a singly linked list both recursively and iteratively
Iteratively: Use three pointers to reverse the links between nodes
Recursively: Use a recursive function to reverse the links between nodes
In both approaches, update the head and tail pointers accordingly
Find odd weight ball among 12 identical balls using a balance in minimum weighings.
Divide balls into 3 groups of 4 each
Weigh any 2 groups against each other
If both groups weigh the same, the odd ball is in the third group
If one group is heavier, weigh any 2 balls from that group against each other
If they weigh the same, the odd ball is the remaining one
If one ball is heavier, it is the odd ball
Repeat the process with t
A program to reverse a singly linked list in groups of k using recursion.
Create a recursive function that takes the head of the linked list and the group size as parameters.
If the remaining list has less than k nodes, return the head as it is.
Reverse the first k nodes by recursively calling the function for the next group.
Connect the reversed group to the remaining list.
Return the new head of the reversed list.
Program to find length of longest substring without repeating characters in a string.
Use a sliding window approach to traverse the string
Use a hash set to keep track of unique characters in the current substring
Update the length of longest substring without repeating characters as you traverse the string
Representing date of a month using two cubes with numbers 0-9 on each face
Assign numbers 0-9 on each face of both cubes
Use one cube to represent tens digit and other for ones digit
Rotate cubes to display desired date
Example: Cube 1 - 0, 1, 2, 3, 4, 5; Cube 2 - 0, 1, 2, 6, 7, 8; To represent 23, Cube 1 shows 2 and Cube 2 shows 3
Find the character repeated most number of times in an array of strings.
Create a dictionary to store character count
Iterate through each string and character
Return the character with highest count
Answering a question on tracing output of C/C++ code snippet with pointers and references
Understand the code and identify all pointers and references
Trace the values of each pointer and reference at each step
Follow the flow of the code to determine the final output
Segmentation fault is a type of error that occurs when a program tries to access a memory location that it is not allowed to access.
Segmentation fault is also known as a segfault.
It is a common error in C and C++ programming languages.
It occurs when a program tries to read or write to a memory location that it does not have permission to access.
This can happen when a program tries to access an uninitialized pointer or ...
BFS and DFS are graph traversal algorithms used to search for nodes in a graph.
BFS stands for Breadth First Search and explores all the nodes at the current depth before moving to the next level.
DFS stands for Depth First Search and explores as far as possible along each branch before backtracking.
BFS uses a queue data structure while DFS uses a stack or recursion.
BFS is useful for finding the shortest path in an unwei...
I would prefer Depth First Search (DFS) traversal for finding a cycle in a graph.
DFS is better suited for finding cycles in a graph as it explores deeper into the graph before backtracking.
DFS can detect a cycle in a graph in O(V+E) time complexity.
DFS can be implemented using recursion or a stack.
Breadth First Search (BFS) can also be used to find cycles but it is less efficient than DFS.
In DFS, we can keep track of v
Hashmap has constant time complexity for insertion, deletion, and retrieval, but requires additional space.
Hashmap provides constant time complexity O(1) for insertion, deletion, and retrieval operations on average.
The space complexity of a hashmap is proportional to the number of elements stored in it.
Hashmap uses a hash function to map keys to indices in an underlying array, which allows for efficient lookup.
In case ...
The data structure behind a login page should store user credentials securely.
Use a database to store user information
Hash and salt passwords for security
Include fields for username, email, password, and possibly additional information
Consider implementing two-factor authentication
I was interviewed before Mar 2021.
Round duration - 40 minutes
Round difficulty - Easy
Technical round with questions based on DSA.
Create a program to reverse a given integer N
. The output should be the reversed integer.
If a number has trailing zeros, their reversed version should not inclu...
Reverse a given integer while excluding trailing zeros.
Create a program to reverse the given integer by converting it to a string and then reversing it.
Remove any trailing zeros from the reversed string before converting it back to an integer.
Handle the constraints of the input integer being between 0 and 10^8.
Example: For input 1230, the output should be 321.
You are given a Singly Linked List of integers. Your task is to reverse the Linked List by changing the links between nodes.
The first line of input contai...
Reverse a given singly linked list by changing the links between nodes.
Iterate through the linked list and reverse the links between nodes.
Use three pointers to keep track of the current, previous, and next nodes.
Update the links while traversing the list to reverse it.
Return the head of the reversed linked list.
new int[5] is C++ specific and initializes the array with default values, while malloc(5 * sizeof(int)) is a C function and does not initialize the array.
new int[5] is C++ specific and calls constructors for each element in the array.
malloc(5 * sizeof(int)) is a C function and does not call constructors, leaving the array uninitialized.
new int[5] returns a pointer to the first element of the array, while malloc(5 * siz...
Tip 1 : Must do Previously asked Interview as well as Online Test Questions.
Tip 2 : Go through all the previous interview experiences from Codestudio and Leetcode.
Tip 3 : Do at-least 2 good projects and you must know every bit of them.
Tip 1 : Have at-least 2 good projects explained in short with all important points covered.
Tip 2 : Every skill must be mentioned.
Tip 3 : Focus on skills, projects and experiences more.
I was interviewed before Mar 2021.
Round duration - 60 minutes
Round difficulty - Easy
Technical interview round with questions based on DSA and OOPS.
Use double pointer to dynamically allocate memory for array of strings in C.
Declare a double pointer to hold the 2D array of strings.
Allocate memory for the rows first using malloc.
Then allocate memory for each string in the row using malloc.
Assign values to the strings in the array.
Example: char **array = malloc(rows * sizeof(char *));
Example: array[i] = malloc(strlen(str) + 1); strcpy(array[i], str);
Virtual functions in C++ are functions that can be overridden in derived classes, allowing for polymorphic behavior.
Virtual functions are declared using the 'virtual' keyword in the base class.
They are used to achieve runtime polymorphism in C++.
Derived classes can override the virtual functions defined in the base class.
Example: class Base { public: virtual void display() { cout << 'Base class dis...
Virtual base classes are classes that are inherited virtually to avoid multiple instances of the same base class in a derived class hierarchy.
Virtual base classes are used in multiple inheritance to prevent the Diamond Problem.
They are declared with the 'virtual' keyword in the base class.
When a class inherits a virtual base class, the most derived class is responsible for initializing the virtual base class.
Example: c...
Round duration - 60 minutes
Round difficulty - Easy
Technical interview round with questions based on OS/Networking etc.
The system call that creates a separate connection is fork()
fork() is a system call in Unix-like operating systems that creates a new process by duplicating the existing process
The new process created by fork() is called the child process, while the original process is called the parent process
fork() is commonly used in network programming to create separate connections for handling multiple clients
epoll_wait() system call waits for events on an epoll instance
Used in Linux for I/O event notification
Blocks until one or more file descriptors become ready
Returns the number of file descriptors ready for I/O operations
Different protocols used in the transport layer include TCP, UDP, SCTP, and DCCP.
TCP (Transmission Control Protocol) - reliable, connection-oriented protocol used for most internet communication
UDP (User Datagram Protocol) - connectionless protocol used for applications where speed is more important than reliability
SCTP (Stream Control Transmission Protocol) - supports multiple streams of data, used for telecommunicati...
TCP is a connection-oriented protocol that ensures reliable data delivery, while UDP is a connectionless protocol that focuses on speed.
TCP is reliable and ensures data delivery by establishing a connection before sending data.
UDP is faster but less reliable as it does not establish a connection before sending data.
TCP is used for applications that require high reliability and error correction, such as web browsing and...
Round duration - 60 minutes
Round difficulty - Easy
Technical interview round with questions based on Networking etc.
ICMP is a protocol used for error reporting, diagnostics, and network management in IP networks.
ICMP is used to report errors in packet delivery
It is used for network diagnostics and troubleshooting
ICMP messages are encapsulated within IP packets
Examples include ping (echo request/reply) and traceroute
TCP supports four types of connection release: active close, passive close, simultaneous close, and abortive close.
Active close: Client initiates the connection release process by sending a FIN packet.
Passive close: Server initiates the connection release process by sending a FIN packet.
Simultaneous close: Both client and server send FIN packets to each other simultaneously.
Abortive close: Connection is terminated abru...
The MAC layer uses protocols like CSMA/CA, CSMA/CD, and TDMA to manage access to the network.
CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance) is used in wireless networks to avoid collisions.
CSMA/CD (Carrier Sense Multiple Access with Collision Detection) is used in wired networks to detect and handle collisions.
TDMA (Time Division Multiple Access) is used in networks where devices are assigned specific
ARP (Address Resolution Protocol) is a protocol used to map an IP address to a MAC address in a local network.
ARP is used to resolve IP addresses to MAC addresses in a local network.
It operates at the data link layer of the OSI model.
ARP requests are broadcasted to all devices on the network.
Example: When a device wants to communicate with another device on the same network, it uses ARP to find the MAC address correspo
Tip 1 : Must do Previously asked Interview as well as Online Test Questions.
Tip 2 : Go through all the previous interview experiences from Codestudio and Leetcode.
Tip 3 : Do at-least 2 good projects and you must know every bit of them.
Tip 1 : Have at-least 2 good projects explained in short with all important points covered.
Tip 2 : Every skill must be mentioned.
Tip 3 : Focus on skills, projects and experiences more.
posted on 3 Dec 2015
I applied via Referral
Program to print binary tree elements in spiral order
Use two stacks to keep track of nodes at odd and even levels
Push nodes from left to right in odd level stack and right to left in even level stack
Pop nodes from the stack alternatively and print them
Repeat until both stacks are empty
Entering a URL in the browser triggers a series of events to retrieve and display the requested webpage.
The browser checks the cache for a previously stored copy of the webpage
If not found, the browser sends a request to the DNS server to resolve the domain name to an IP address
The browser then sends a request to the web server at the IP address for the webpage
The web server responds with the requested webpage
The brows...
MAC addresses are required for identifying devices on a local network, while IP addresses are used for identifying devices on a global network.
MAC addresses are used for communication within a local network
IP addresses are used for communication across different networks
MAC addresses are assigned by the manufacturer and cannot be changed
IP addresses can be assigned dynamically or statically
MAC addresses are used in the...
Developed a web application for tracking inventory and sales data
Used React.js for front-end development
Implemented RESTful APIs using Node.js and Express for back-end
Utilized MongoDB for database management
Integrated authentication and authorization features for secure access
Designed user-friendly interface with responsive design
An ArrayList is a dynamic array in Java that can grow or shrink in size during runtime.
ArrayList is a class in Java's Collection framework.
It implements the List interface and allows duplicate elements.
Elements can be added or removed using methods like add(), remove(), etc.
It can also be sorted using the sort() method.
Example: ArrayList
names.add("John"); names.add("Mary"); names.remove(0);
ArrayList is a resizable array while LinkedList is a doubly linked list.
ArrayList is faster for accessing elements while LinkedList is faster for adding or removing elements.
ArrayList uses contiguous memory while LinkedList uses non-contiguous memory.
ArrayList is better for random access while LinkedList is better for sequential access.
Example: ArrayList - List
Java is not a pure OO language due to primitive types not being objects.
Primitive types like int, boolean, etc. are not objects in Java
They do not have methods or inheritance like objects do
This violates the principle of everything being an object in pure OO languages
Wrapper classes like Integer, Boolean, etc. were introduced to provide object-like behavior for primitives
Object-oriented languages support inheritance and polymorphism, while object-based languages do not.
Object-oriented languages allow for the creation of classes and objects, and support inheritance and polymorphism.
Object-based languages only support objects, but do not have the concept of classes or inheritance.
Examples of object-oriented languages include Java, C++, and Python, while JavaScript is an example of an obj
Inheritance is a way to create new classes based on existing ones. Abstraction is a way to hide implementation details.
Inheritance allows a subclass to inherit properties and methods from a superclass.
Abstraction allows a class to provide a simplified interface to its users while hiding its implementation details.
For example, a Car class can inherit properties and methods from a Vehicle class, while also implementing i...
I applied via Referral
No, as a software engineer, you may not have the necessary experience or skills to work as an IT manager.
Software engineers typically focus on coding and technical aspects, while IT managers are responsible for overseeing projects, teams, and budgets.
IT managers need strong leadership, communication, and decision-making skills, which may not be the primary focus of a software engineer.
Consider gaining experience in pro...
OSI stack has 7 layers that define how data is transmitted over a network.
OSI stands for Open Systems Interconnection
Each layer has a specific function and communicates with adjacent layers
Layers are: Physical, Data Link, Network, Transport, Session, Presentation, Application
A router is needed to connect two computers in different networks or to share internet connection.
When two computers are in different networks, a router is needed to connect them.
A router can also be used to share internet connection between multiple devices.
Routers can provide additional security features like firewall and VPN.
Examples of routers include Cisco, Netgear, and TP-Link.
IPv4 has 32 bits and IPv6 has 128 bits.
IPv4 addresses are in the format of xxx.xxx.xxx.xxx where each xxx is an 8-bit number.
IPv6 addresses are in the format of xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx where each xxxx is a 16-bit number.
IPv6 addresses allow for a much larger number of unique addresses than IPv4.
IPv6 is needed due to the exhaustion of IPv4 addresses and the need for more unique IP addresses.
IPv6 provides a significantly larger address space compared to IPv4.
It allows for the allocation of unique IP addresses to every device connected to the internet.
IPv6 supports improved security features and better network performance.
It enables the growth of Internet of Things (IoT) devices and services.
Transitioning to IPv...
A /24 address can have 256 clients. Network address is the first IP and broadcast address is the last IP.
A /24 address has 256 IP addresses
The network address is the first IP in the range
The broadcast address is the last IP in the range
Anycast, unicast, and multicast are different ways of routing network traffic.
Unicast is one-to-one communication between a sender and a receiver.
Anycast is one-to-nearest communication where the sender sends a message to the nearest receiver.
Multicast is one-to-many communication where the sender sends a message to a group of receivers.
Anycast is used for load balancing and finding the nearest server.
Unicast is used f...
Virtual memory is a memory management technique that allows a computer to use more memory than physically available.
Virtual memory is created by using hard disk space as an extension of RAM.
It allows running more programs than the physical memory can handle.
The size of virtual memory is typically larger than the size of main memory.
Virtual memory is divided into pages, which are swapped in and out of main memory as nee...
I rate myself 8 in C and 7 in web technologies.
I have extensive experience in C programming and have worked on multiple projects using it.
In web technologies, I have a good understanding of HTML, CSS, and JavaScript, but there is always room for improvement.
I am constantly learning and improving my skills in both areas.
My strengths include problem-solving skills, attention to detail, and strong programming abilities.
Strong problem-solving skills - able to analyze complex problems and come up with effective solutions
Attention to detail - meticulous in writing code and ensuring it is error-free
Strong programming abilities - proficient in multiple programming languages such as Java, Python, and C++
based on 1 interview
Interview experience
Software Engineer III
128
salaries
| ₹0 L/yr - ₹0 L/yr |
Software Engineer
110
salaries
| ₹0 L/yr - ₹0 L/yr |
Senior Software Engineer
87
salaries
| ₹0 L/yr - ₹0 L/yr |
Software Engineer2
80
salaries
| ₹0 L/yr - ₹0 L/yr |
Software Engineer II
50
salaries
| ₹0 L/yr - ₹0 L/yr |
Cisco
Juniper Networks
Palo Alto Networks
Fortinet