Find Interview Questions for Top Companies
Ques:- puzzle-There are 1000 wine bottles. One of the bottles contains poisoned wine. A rat dies after one hour of drinking the poisoned wine. How many minimum rats are needed to figure out which bottle contains poison in hour. link-http://quiz.geeksforgeeks.org/puzzle-19-poison-and-rat/
Asked In :- Finacle Technologies,
Right Answer:
10 rats are needed to determine which bottle contains the poisoned wine.
Ques:- Deadlock in operating system
Asked In :- DIGICOMM Semiconductor,
Right Answer:
A deadlock in an operating system occurs when two or more processes are unable to proceed because each is waiting for the other to release a resource. This situation creates a cycle of dependencies that prevents any of the involved processes from continuing execution.
Ques:- Launch Mode of Activity in Android
Asked In :-
Right Answer:
In Android, the launch modes of an Activity are:

1. **standard**: A new instance of the Activity is created every time it is launched.
2. **singleTop**: If an instance of the Activity is already at the top of the stack, that instance is reused.
3. **singleTask**: A new instance is created only if no instance exists in the task; otherwise, the existing instance is brought to the front.
4. **singleInstance**: Similar to singleTask, but the Activity is the only one in its task, and no other Activities can be launched in that task.
Ques:- Given a String, write a function, which will return a boolean. The function will tell you whether one permutation of the string is Palindrome or not
Asked In :-
Right Answer:
```python
def can_form_palindrome(s: str) -> bool:
from collections import Counter
count = Counter(s)
odd_count = sum(1 for freq in count.values() if freq % 2 != 0)
return odd_count <= 1
```
Ques:- Given an array, which consist of natural numbers only. The elements are in random order, tell the first missing natural number in the array. e.g 4,6,3,1,6,8 o.p – 2 1,2,3 O/P – 4
Asked In :-
Right Answer:
To find the first missing natural number in an array of natural numbers, you can use the following approach:

1. Iterate through the array and place each number in its correct index (i.e., number 1 at index 0, number 2 at index 1, etc.) using a loop.
2. After rearranging, check the array from the beginning to find the first index that does not match the expected number (index + 1).
3. The first missing natural number will be that index + 1.

Here is a concise implementation in Python:

```python
def first_missing_positive(nums):
n = len(nums)
for i in range(n):
while 1 <= nums[i] <= n and nums[nums[i] - 1] != nums[i]:
nums[nums[i] - 1], nums[i] = nums[i], nums[nums[i] - 1]

for i in range(n):
if nums[i] !=
Ques:- Given two words, find the similarity between them. You have to develop your own sense of similarity here. Normalize length of LCS by the total length of the string.
Asked In :- image infosystems,
Right Answer:
To find the similarity between two words based on the Longest Common Subsequence (LCS), follow these steps:

1. Calculate the LCS of the two words.
2. Normalize the LCS length by the total length of both words combined.

The formula for similarity can be expressed as:

[ text{Similarity} = frac{text{Length of LCS}}{text{Length of Word 1} + text{Length of Word 2}} ]

This will give you a value between 0 and 1, where 1 indicates the words are identical in terms of their LCS.
Ques:- Given a binary tree, return doubly linked list of all the nodes at each level.
Asked In :-
Right Answer:
To convert a binary tree to a doubly linked list at each level, you can use a breadth-first traversal (level order traversal). For each level, create a doubly linked list by connecting the nodes from left to right. Here’s a simple implementation in Python:

```python
class TreeNode:
def __init__(self, value):
self.value = value
self.left = None
self.right = None

class DLLNode:
def __init__(self, value):
self.value = value
self.prev = None
self.next = None

def tree_to_dll(root):
if not root:
return []

result = []
queue = [root]

while queue:
level_size = len(queue)
head = None
prev = None

for i in range(level_size):
node = queue.pop(0)
dll_node = DLLNode(node.value)

if head is None:
head = dll
Ques:- Implement the “People you may know” feature of facebook with code. Use BFS and counter (for mutual friends).
Asked In :-
Right Answer:
```python
from collections import defaultdict, deque, Counter

class SocialNetwork:
def __init__(self):
self.friends = defaultdict(set)

def add_friendship(self, person1, person2):
self.friends[person1].add(person2)
self.friends[person2].add(person1)

def people_you_may_know(self, person):
if person not in self.friends:
return []

# Use BFS to find mutual friends
queue = deque(self.friends[person])
visited = set(self.friends[person]) # Friends of the person
mutual_friends_count = Counter()

while queue:
current = queue.popleft()
for friend in self.friends[current]:
if friend not in visited and friend != person:
visited.add(friend)
mutual_friends_count[friend] += 1
queue.append(friend)

# Return people sorted by mutual friends count
Ques:- Longest increasing subsequence
Asked In :-
Right Answer:
To find the longest increasing subsequence (LIS) in an array, you can use dynamic programming or binary search.

1. **Dynamic Programming Approach**:
- Create an array `dp` where `dp[i]` represents the length of the longest increasing subsequence that ends with the element at index `i`.
- Initialize all values in `dp` to 1.
- For each element `arr[i]`, check all previous elements `arr[j]` (where `j < i`). If `arr[j] < arr[i]`, update `dp[i] = max(dp[i], dp[j] + 1)`.
- The length of the longest increasing subsequence will be the maximum value in `dp`.

2. **Binary Search Approach** (more efficient):
- Use an auxiliary array `tails` to store the smallest tail of all increasing subsequences found so far.
- For each element in the input array, use binary search to
Ques:- It was more about array and 2-D matrix
Asked In :- Finacle Technologies,
Right Answer:
Please provide the specific question related to arrays and 2-D matrices for me to answer.
Ques:- Define a class template?
Asked In :- CEIPAL SOLUTIONS PVT,
Right Answer:
A class template is a blueprint for creating classes in C++ that can operate with any data type. It allows you to define a class with placeholder types, which are specified when an object of the class is instantiated. For example:

```cpp
template <typename T>
class MyClass {
public:
T value;
MyClass(T val) : value(val) {}
};
```
Ques:- How can we catch all kind of exceptions in a single catch block?
Asked In :-
Right Answer:
In C, you cannot catch exceptions like in C++ or Java, as C does not have built-in exception handling. However, you can use error codes and handle errors in a single function or block by checking the return values of functions. For example, you can define a function that checks for various error conditions and handles them accordingly.
Ques:- Explain a static variable?
Asked In :- pip,
Right Answer:
A static variable is a variable that retains its value between function calls and is shared among all instances of a class or function. It is initialized only once and exists for the lifetime of the program, meaning it maintains its state even after the function in which it is declared has finished executing.
Ques:- What is the meaning of base address of the array?
Asked In :- Finacle Technologies,
Right Answer:
The base address of an array is the memory address of the first element of the array.
Ques:- Explain command line arguments?
Asked In :- torc robotics,
Right Answer:
Command line arguments are parameters passed to a program when it is executed from the command line. In C, they are accessed in the `main` function through the parameters `int argc` (argument count) and `char *argv[]` (argument vector), where `argc` represents the number of arguments and `argv` is an array of strings containing the actual arguments.
Ques:- What is the purpose of external storage specifier?
Asked In :-
Right Answer:
The external storage specifier in C is used to declare a variable that is defined outside of any function, allowing it to be accessible across multiple files. It indicates that the variable has external linkage, meaning it can be shared among different translation units.
Ques:- Define the scope resolution operator?
Asked In :-
Right Answer:
The scope resolution operator (::) in C++ is used to define the context in which a name (such as a variable or function) is defined, allowing access to global variables or class members that may be hidden by local definitions.
Ques:- What is keyword auto for?
Asked In :-
Right Answer:
The `auto` keyword in C (specifically in C11 and later) is used to automatically deduce the type of a variable from its initializer. It allows the compiler to infer the type, making code more concise and easier to read.
Ques:- What do you mean by the block scope variable in C++?
Asked In :-
Right Answer:
In C++, a block scope variable is a variable that is declared within a specific block of code, such as within a pair of curly braces `{}`. Its visibility and lifetime are limited to that block, meaning it cannot be accessed outside of it. Once the block is exited, the variable is destroyed and cannot be used anymore.
Ques:- Describe a namespace?
Right Answer:
A namespace is a container that holds a set of identifiers (such as variable names, function names, etc.) and allows them to be organized and differentiated from identifiers in other namespaces, preventing naming conflicts in programming.


A Software Development Engineer (SDE) is a foundational and highly sought-after professional in the technology industry, responsible for the entire lifecycle of software creation. These engineers are not just programmers; they are problem-solvers, designers, and innovators who transform ideas into functional, practical, and scalable software applications and systems. They work in a wide range of industries, from technology giants and startups to finance and healthcare, building the digital tools and platforms that power our modern world.

The core responsibilities of an SDE are extensive and varied, covering all stages of the development process:

  • Design and Architecture: SDEs are involved in the early stages of a project, collaborating with product managers and other engineers to design the architecture of a software system. This includes planning data structures, defining APIs, and making strategic technical decisions that will ensure the software is robust and maintainable.
  • Coding and Implementation: The primary task of an SDE is writing high-quality code. They are proficient in one or more programming languages (such as Python, Java, C++, or JavaScript) and follow best practices to create clean, efficient, and well-documented code that aligns with the system’s design.
  • Testing and Quality Assurance: SDEs are responsible for ensuring the reliability of their code. They write and execute various tests (unit, integration, and system tests) to identify and fix bugs, ensuring the software performs as expected and meets all quality standards before it is deployed to users.
  • Maintenance and Support: The job continues after a product is launched. SDEs provide ongoing support by monitoring system performance, addressing user feedback, and performing updates, patches, and feature enhancements to ensure the software remains current and secure.

To succeed in this role, an SDE must possess a strong foundation in computer science fundamentals, including data structures, algorithms, and software design principles. They must also have excellent problem-solving abilities, be adept at collaborating within a team environment, and possess a passion for continuous learning to keep up with the fast-paced evolution of technology. In essence, an SDE is a creative builder who plays a central role in driving innovation and bringing technological solutions to life.

AmbitionBox Logo

What makes Takluu valuable for interview preparation?

1 Lakh+
Companies
6 Lakh+
Interview Questions
50K+
Job Profiles
20K+
Users