i
OpenText Technologies
Filter interviews by
I applied via Campus Placement and was interviewed before Aug 2022. There were 5 interview rounds.
60 Aptitude questions under separate topics.
2 programming questions, one is medium another one is tough.
A generic swap function swaps two values of any data type.
The function should take two parameters of any data type.
Use a temporary variable to store the value of one parameter.
Assign the value of the second parameter to the first parameter.
Assign the value of the temporary variable to the second parameter.
Search for an element in a rotated sorted linked list.
Find the pivot point where the list is rotated.
Divide the list into two sublists based on the pivot point.
Perform binary search on the appropriate sublist.
Handle edge cases such as empty list and list with only one element.
Search an element in a rotated sorted array
Find the pivot point where the array is rotated
Divide the array into two sub-arrays based on pivot point
Perform binary search on the appropriate sub-array
Repeat until element is found or sub-array size is 1
Find 5 missing numbers in an array of size 95 containing numbers in range 1 to 100.
Create a boolean array of size 100 and mark the present numbers
Iterate through the boolean array and find the missing numbers
Alternatively, use a HashSet to store the present numbers and find the missing ones
Given a Sudoku board, find possible numbers for an empty cell.
Iterate through empty cells and check possible numbers using row, column, and box constraints.
Use a set to keep track of possible numbers for each empty cell.
Return the set of possible numbers for the given empty cell.
Find integer average of 4 unsigned integers without typecasting
Add all the integers and divide by 4
Use bit shifting to divide by 4
Handle overflow by using long long data type
Use unsigned int data type for input
Code to identify 32 bit or 64 bit architecture of a processor
Check if the operating system is 32 bit or 64 bit
If OS is 32 bit, processor is 32 bit
If OS is 64 bit, check if processor supports 64 bit architecture
Use CPUID instruction to check if processor supports 64 bit architecture
Convert binary number to base 64 integer
Divide the binary number into groups of 6 bits
Convert each group of 6 bits to decimal
Map the decimal value to the corresponding base 64 character
Concatenate the base 64 characters to form the final integer
I applied via Referral
There are two ways to throw an exception in exception handling.
Exceptions can be thrown using the throw keyword.
Exceptions can also be thrown implicitly by the runtime system.
Examples of explicit throwing include throw new Exception() and throw new IOException().
Examples of implicit throwing include division by zero or null pointer dereference.
Reverse a given string using array of characters.
Create an empty array to store the reversed string.
Loop through the original string from end to start.
Push each character into the empty array.
Join the array to form the reversed string.
Copy constructor creates a new object by copying an existing object, while assignment operator assigns the value of an existing object to another object.
Copy constructor is used to initialize a new object with the values of an existing object.
Assignment operator is used to assign the value of an existing object to another object.
Copy constructor is called when a new object is created from an existing object.
Assignment ...
A copy constructor is used to create a new object with the same values as an existing object. We implement our own to ensure proper copying of data members.
A copy constructor is needed when we want to create a new object with the same values as an existing object.
If we don't implement our own copy constructor, the default copy constructor provided by the compiler may not copy data members properly.
We can implement our ...
QT framework is used for developing cross-platform applications with a single codebase.
QT provides a wide range of libraries and tools for developing GUI applications.
QT supports multiple platforms including Windows, Linux, macOS, Android, and iOS.
QT has a large community and extensive documentation.
QT is written in C++ and supports other programming languages like Python and Java.
QT is used by companies like Autodesk,...
RTTI stands for Run-Time Type Identification.
RTTI is a feature in C++ that allows the type of an object to be determined at runtime.
It is used to implement dynamic_cast, typeid, and exception handling.
RTTI can be used to check if an object is of a certain type before casting it.
It can also be used to determine the type of an object in order to perform specific operations on it.
I have used the Singleton and Factory design patterns in my previous projects.
Singleton pattern was used to ensure only one instance of a class is created and provide a global point of access to it.
Factory pattern was used to create objects without exposing the instantiation logic to the client and provide a way to create objects of a family without specifying their concrete classes.
QT supports multiple operating systems and cross-compilation is possible.
QT supports Windows, macOS, Linux, Android, iOS, and many other operating systems.
Cross-compilation is possible, meaning you can compile for different operating systems on a single machine.
QT also supports embedded systems like Raspberry Pi and BeagleBone.
QT provides pre-built binaries for some operating systems, but for others, you may need to co...
QPointer is a deprecated Qt class used for storing and managing pointers.
QPointer is used to avoid dangling pointers in Qt applications.
It is a template class that can be used with any QObject-derived class.
QPointer is now deprecated and replaced by QWeakPointer.
QPointer can be used to check if a QObject is still valid before accessing it.
dpointer is a Qt framework concept used for efficient memory management.
dpointer is a private implementation pointer.
It is used to hide implementation details from the public API.
dpointer allows for copy-on-write semantics.
It reduces memory usage and improves performance.
Example: QString uses dpointer to store its data.
Example: QSharedDataPointer is used to share data between objects.
I have used Qt version 5.12.3 for my previous project.
Qt version 5.12.3 was used in my previous project
I have experience working with Qt 5.15.2 as well
I am familiar with the features and functionalities of Qt 5.12.3
To check if a linked list is circular, use two pointers, one moving at twice the speed of the other. If they meet, the list is circular.
Use two pointers, one moving at twice the speed of the other
If the faster pointer catches up to the slower pointer, the list is circular
If the faster pointer reaches the end of the list, the list is not circular
Find the merge point of 2 linked lists.
Traverse both lists and find their lengths
Move the pointer of the longer list to the same distance as the shorter list
Move both pointers until they meet at the merge point
If there is no merge point, return null
To find a string in a sorted array of strings.
Use binary search algorithm to search for the string in the array.
Compare the search string with the middle element of the array.
If the search string is less than the middle element, search in the left half of the array.
If the search string is greater than the middle element, search in the right half of the array.
Repeat the process until the string is found or the search sp
Singleton class is a design pattern that restricts the instantiation of a class to one object.
To create a singleton, we need to make the constructor private and provide a static method to get the instance of the class.
To delete the singleton object, we can simply set the instance to null.
Singletons are useful when we need to ensure that only one instance of a class exists throughout the application.
Example: Logger clas...
Dynamic memory allocation in C/C++ is done using malloc(), calloc(), realloc() functions. C++ also has new and delete operators.
malloc() allocates memory block of specified size
calloc() allocates memory block and initializes it to zero
realloc() changes the size of previously allocated memory block
new operator in C++ allocates memory and calls constructor
delete operator in C++ deallocates memory and calls destructor
I appeared for an interview before Jan 2021.
Round duration - 90 Minutes
Round difficulty - Medium
This was an online coding round where we had 2 questions to solve under 90 minutes . Both the questions were of easy to medium difficulty .
Calculate the Nth term in the Fibonacci sequence, where the sequence is defined as follows: F(n) = F(n-1) + F(n-2)
, with initial conditions F(1) = F(2) = 1
.
Calculate the Nth Fibonacci number efficiently using dynamic programming.
Use dynamic programming to store previously calculated Fibonacci numbers to avoid redundant calculations.
Start with base cases F(1) and F(2) as 1, then iterate to calculate subsequent Fibonacci numbers.
Time complexity can be optimized to O(N) using dynamic programming.
Example: For N = 5, the 5th Fibonacci number is 5.
Given a binary tree where each node contains an integer value, and a value 'K', your task is to find all the paths in the binary tree such that the sum of the node values in ...
Find all paths in a binary tree where the sum of node values equals a given value 'K'.
Traverse the binary tree using depth-first search (DFS) and keep track of the current path and its sum.
When reaching a leaf node, check if the sum equals 'K' and add the path to the result.
Continue DFS traversal for both left and right children, passing updated path and sum.
Return the list of paths that sum up to 'K'.
Round duration - 60 Minutes
Round difficulty - Medium
This was a standard DSA round where I was asked to solve 1 question and also code it in a production ready manner . I was also asked 2 puzzles in this round to check my problem solving skills . This round ended with some basic concepts from DBMS and I was also asked some queries related to SQL .
Reverse a given stack of integers using recursion. You must accomplish this without utilizing extra space beyond the internal stack space used by recursion. Additionally, you ...
Reverse a given stack of integers using recursion without using extra space or loop constructs.
Use recursion to pop all elements from the original stack and store them in function call stack.
Once the stack is empty, push the elements back in reverse order using recursion.
Base case of recursion should be when the original stack is empty.
Race horses in groups of 5, then race the winners to determine the top 3 fastest horses.
Divide the 25 horses into 5 groups of 5 horses each.
Race the horses in each group to determine the fastest horse in each group.
Race the winners from each group to determine the top 3 fastest horses.
Normalization is the process of organizing data in a database to reduce redundancy and improve data integrity. Denormalization is the opposite process, adding redundancy to improve read performance.
Normalization involves breaking down a table into smaller tables and defining relationships between them to reduce redundancy.
Denormalization involves combining tables to reduce the number of joins needed for queries, improv...
Primary key uniquely identifies a record in a table, while unique key ensures no duplicate values in a column.
Primary key is used to uniquely identify each record in a table
Primary key does not allow NULL values
Unique key ensures that all values in a column are unique
Unique key allows NULL values, except for the column with unique constraint
A table can have only one primary key, but multiple unique keys
Left Outer Join includes all records from the left table and matching records from the right table. Right Outer Join includes all records from the right table and matching records from the left table.
Left Outer Join returns all records from the left table and the matched records from the right table. Unmatched records from the right table will have NULL values.
Right Outer Join returns all records from the right table a...
To find the second highest salary in a table, you can use a SQL query with the ORDER BY and LIMIT clauses.
Use a SQL query to select the distinct salaries in descending order: SELECT DISTINCT salary FROM table_name ORDER BY salary DESC
Use the LIMIT clause to retrieve the second row: LIMIT 1,1
Combine both queries to find the second highest salary: SELECT DISTINCT salary FROM table_name ORDER BY salary DESC LIMIT 1,1
Round duration - 30 Minutes
Round difficulty - Easy
This was a typical HR round with some standard Behavioral questions like my interests, weaknesses, strengths, family background, why Amdocs, CEO of Amdocs etc.
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 applied via Recruitment Consultant and was interviewed in May 2019. There were 4 interview rounds.
I applied via Naukri.com and was interviewed before Jun 2020. There were 5 interview rounds.
based on 1 interview
Interview experience
based on 2 reviews
Rating in categories
Software Engineer
992
salaries
| ₹6.3 L/yr - ₹26 L/yr |
Senior Software Engineer
912
salaries
| ₹12 L/yr - ₹36 L/yr |
Lead Software Engineer
385
salaries
| ₹16 L/yr - ₹50 L/yr |
Associate Software Engineer
370
salaries
| ₹6.8 L/yr - ₹17 L/yr |
Software Developer
233
salaries
| ₹5.7 L/yr - ₹22.9 L/yr |
Amdocs
Automatic Data Processing (ADP)
24/7 Customer