Tip 1: Research the Company: Research the company thoroughly before your interview. Understand their business, products, and services. This will help you understand their needs and align your skills and experiences with their requirements.
Tip 2: Practice Coding: Practicing coding problems is a great way to prepare for IT job interviews. Many online resources are available where you can find coding challenges and practice problems. This will help you improve your coding skills and prepare for technical interviews.
Tip 3: Review Your Resume: Make sure your resume is up to date and highlights your relevant experiences and skills.
Tip 1: Tailor Your Resume: Tailor your resume to the job you are applying for. Highlight the skills and experiences that are most relevant to the position.
Tip 2: Showcase Projects: Showcase any relevant projects you have worked on. This will give the recruiter an idea of your practical skills and how you have applied your knowledge in real-world scenarios.
Tip 3: Highlight Technical Skills: Highlight your technical skills and experience in the field. List the programming languages, frameworks, and tools you are proficient in.
Timing: The round was conducted for 90 minutes.
Environment: As it was an online round, the environment would depend on the individual candidates. However, I recommended taking the test in a quiet and distraction-free environment with a stable internet connection.
Coding Questions: The coding round had two questions, which I had to solve within the given time frame. The questions were based on any programming language, and I was expected to write efficient code that could pass all the test cases.
Aptitude MCQ: Along with the coding questions, the round also included multiple-choice questions (MCQs) on aptitude. These questions covered a wide range of topics such as quantitative aptitude, logical reasoning, verbal ability, and data interpretation.



Two strings are said to be anagram if they contain the same characters, irrespective of the order of the characters.
If 'STR1' = “listen” and 'STR2' = “silent” then the output will be 1.
Both the strings contain the same set of characters.
Convert both strings to lowercase or uppercase to ensure case insensitivity. Remove all whitespace and punctuation marks from both strings using regular expressions. Convert both strings to arrays of characters. Sort both arrays of characters in ascending order. Compare both arrays of characters. If they are equal, the original strings are anagrams of each other; otherwise, they are not.



The position given will always be less than or equal to the length of the linked list.
Assume that the Indexing for the linked list starts from 0.
Input :
‘K’ = 3, ‘VAL’ = 4
list = [1, 2, 3]
Output: [1, 2, 3, 4]

The ‘VAL’ = 4, is inserted at end of the above doubly linked list.
Create a new node with the given data.
Check if the doubly linked list is empty:
a. If it is empty, set the new node as both the head and the tail of the list.
b. If it is not empty, proceed to the next step.
Set the next pointer of the new node to the current head of the list.
Set the prev pointer of the current head, if it exists, to the new node.
Set the new node as the new head of the list.


Create a function to traverse the binary tree recursively.
If the current node is None (indicating an empty subtree), return 0.
If both the left and right child nodes of the current node are None (indicating a leaf node), return 1.
Recursively traverse the left and right subtrees of the current node.
Sum up the leaf node counts obtained from the left and right subtrees and return the total count.
Introduction: The interview started with the interviewer asking me to introduce myself briefly. I mentioned my name, education, skills, and career aspirations.
Project Discussion: The interviewer then asked me to explain one of the projects I had mentioned on my resume. I briefly described the project, its purpose, and the role I played in it. The interviewer asked me some technical questions related to the project to gauge my understanding of the technology stack I had used.
Coding Question + CS Fundamentals: The interviewer presented me with a coding question related to arrays. I was given a few minutes to think about the solution and then asked to write the code. The interviewer assessed my problem-solving approach, coding skills, and ability to write clean and efficient code. After solving the coding question, I was asked basic questions from OS, DBMS, and CN.
HR Questions: After the coding question, the interviewer asked me some basic HR questions related to my strengths, weaknesses, and how I handle challenging situations at work. The questions were aimed at understanding my personality, communication skills, and how I would fit into the company culture.
Overall, the interview was a mix of technical and HR questions. The technical questions assessed my knowledge and skills in the relevant technologies, while the HR questions aimed to understand my personality and work ethic. The interviewer was friendly and supportive throughout the interview, and I felt comfortable discussing my experiences and answering the questions.



• The given leaf node becomes the root after the inversion.
• For a node (say, ‘x’)
○ If there exists the left child that is not yet taken then this child must become the right child of ‘x’.
○ If the left child is already taken then the right child is still on the right side of ‘x’.
• The parent of ‘x’ must be the left child of ‘x’.

Consider the above binary tree (image- before inversion), if the given leaf node is ‘1’ then the binary tree after inversion becomes exactly the same as given in the image representing after inversion.
The given binary tree will only have distinct values of nodes.
Create a function to invert the binary tree recursively.
If the current node is None (indicating an empty subtree), return None.
Swap the left and right child nodes of the current node.
Recursively invert the left and right subtrees of the current node.
Return the updated current node.



Let’s say we have n=4 nodes, 'LEFT_CHILD' = {1, -1, 3, -1} and
RIGHT_CHILD = {2, -1, -1, -1}. So the resulting tree will look like this:
It will return True as there is only one valid binary tree and each node has only one parent and there is only one root.
Create a function to validate the binary tree recursively.
Define a helper function that takes the current node, a lower bound, and an upper bound as parameters. This function will recursively validate each node's value against the bounds.
If the current node is None (indicating an empty subtree), return True as the empty subtree is considered valid.
If the current node's value is outside the lower or upper bounds, return False as it violates the BST property.
Recursively validate the left subtree, passing the updated upper bound as the current node's value and the lower bound unchanged.
Recursively validate the right subtree, passing the updated lower bound as the current node's value and the upper bound unchanged.
If both the left and right subtrees are valid (i.e., return True for both recursive calls), return True for the current node.
Implement a program that simulates the process synchronization mechanism using semaphores. Consider a scenario where multiple threads need to access a shared resource simultaneously, but only a limited number of threads should be allowed access at a time. (Learn)
Initialize a semaphore variable, semaphore, with the maximum number of threads that can access the shared resource simultaneously.
When a thread wants to access the shared resource, it must acquire the semaphore. If the semaphore value is greater than 0, decrement the semaphore value by 1 and allow the thread to access the resource. If the semaphore value is 0, the thread must wait until it can acquire the semaphore. When a thread finishes accessing the shared resource, it must release the semaphore by incrementing the semaphore value by 1 to allow another waiting thread to acquire the resource.
Optimize a database query to improve its performance and efficiency. Consider a scenario where a complex query takes a significant amount of time to execute, and you want to optimize it.
Analyze the query execution plan:
Review the query conditions and filters:
Optimize table join operations:
Consider query rewriting or subquery optimization:

Here's your problem of the day
Solving this problem will increase your chance to get selected in this company
What is recursion?