Persistent Interview Experience

Persistent Interview Experience 2024

Here you’ll discover the latest Persistent Interview Experiences of students along with the Persistent Employment Process, Interview questions and answers and many more.

Page highlights:

  • About Persistent
  • Persistent Interview Experience
  • Persistent Interview Questions with Answers
  • Persistent Interview preparation courses
  • Persistent FAQs
Floyd's triangle in C

About Persistent

Persistent Systems was established on 16 May 1990 as Persistent Systems Private Limited. Persistent Systems is an Indian Multinational Technology service based IT firm.

For more information you can visit them on: www.persistent.com

Recruitment Process

Persistent Systems recruits through the following processes:-

  • Off Campus drives
  • On Campus drives
  • Employee referrals

Rounds

On and Off Campus drives:

  • Online Assessment

Objective Round 

    • Computer Science
    • English Comprehension
    • Logical Ability
    • Quants

Subjective Round: Coding Ability

Advanced Coding Round:Candidates who do well in the Online Test will be moved on to the Advanced Coding Round.

  • Technical Interviews (TR 1 & TR 2)
  • HR Interview

NOTE: Multiple technical rounds can be conducted based upon college and grades.

Profiles

The most common roles that Persistent hires:

  • Project trainee
  • Software Engineer

To know more about Persistent Interview process, you may visit : prepinsta.com/persistent/

Persistent Interview Process

Persistent Interview Process

Persistent On Campus Interview Experience

1. Persistent On Campus Interview Experience

Persistent Systems holds a good rating as one of the best companies to work with by their employees. When I received an email from our college placement cell regarding the Persistent on-campus hiring process. After I applied there, I got an email from Persistent Systems with my online assessment link.

It basically consists of 4 rounds:

Round 1: Aptitude assessment:

The aptitude section is also known as Objective Assessment.

Duration and No. of questions: 50 minutes for 50 questions

The assessment was conducted on the SHL platform. The assessment consisted of questions from:

  • Computer Science
  • English Comprehension
  • Logical Ability
  • Quantitative Aptitude

Subjective Assessment:

Subjective Assessment is basically a Coding Assessment

This round was conducted on the SHL platform itself which is a sub platform of AMCAT.

Duration and No. of questions: 40 minutes for 2 questions.

  1. What’s the value of the expression 5 [“abcdef”]?
  2. How can a number be converted to a string?

I was chosen for the advanced coding assessment for the 7.8LPA package since I correctly answered both questions.

Round 2: Advanced coding assessment:

Platform used: SHL

Duration and No. of questions: 45 minutes for 2 questions.

1. Find duplicates in an array of N+1 Integers.

Ans: (Coding using Java)

import java.io.*;

import java.util.*;

public

class Main {

static int findduplicate(int[] arr, int n) {

 

// return -1 because in these cases

// there can not be any repeated element

 

if (n <= 1) return -1;

// initialize fast and slow

int slow = arr[0];

int fast = arr[arr[0]];

 

// loop to enter in the cycle

while (fast != slow) {

// move one step for slow

slow = arr[slow];

// move two step for fast

fast = arr[arr[fast]];

}

// loop to find entry point of the cycle

fast = 0;

while (slow != fast) {

slow = arr[slow];

fast = arr[fast];

}

return slow;

}

// Driver Code

 

public

static void main(String args[]) {

int[] arr = {1, 2, 3, 4, 5, 6, 3};

int n = arr.length;

System.out.print(findduplicate(arr, n));

}

}						

2. How to count the occurrences of a particular element in the list?

After clearing this round I was selected for the technical round. 

Round 3: Technical Round

Duration: 35 minutes

There was one interviewer, we greeted each other and my interview started. Later the interviewer asked to introduce myself and my favorite programming language. I talked about C programming and the Python language. So he asked me questions from C and python and also some software engineering related questions.

Questions are listed as:

1. What are the basic data types supported in the C programming language?

Ans. C supports two types of data types and those data types are again classified.

  • Primary Data Types: These are fundamental data types which include int,float,char,double,void.
  • Derived Data Types: These are derived from primary data types which include union,structure,array.

2. What are static variables and functions?

Ans:Static variables can be used within a function or file. Unlike global variables, static variables are not variables outside their functions or file, but they maintain their values between calls. The static specifier has different effects upon local and global variables. 

3. Define Normalization?

Ans: Organizing data into a relatable Table is known as Normalization.

 4. What do you mean by the dangling pointer variable in C programming?

Ans: A dangling pointer is a pointer which points to some memory location that has been deleted or freed already. In simpler words, any pointer pointing to a destroyed object or which does not contain a valid address is called a dangling pointer. If any pointer points to a memory address of a variable, after some time if the variable is deleted from memory but still if the pointer points to the same address location, it is a dangling pointer.

Example:

#include <stdio.h>

#include <stdlib.h>

void main()

{

int *p = (int *)malloc(sizeof(int));

// After below free call, ptr becomes a

// dangling pointer

free(p);

}						

5. Difference between C and C++.

Ans: C++ can be considered as a  superset of C, most C programs except some exceptions, work in C++ and C.

C programming is a little bit limited and is a procedural programming language, but C++ supports both procedural and Object-Oriented programming

Since C++ supports object-oriented programming, it is capable of performing tasks like function overloading, templates, inheritance, virtual functions, friend functions. These features are not present in C.

C++ supports exception handling at the language level, in C exception handling is done in the traditional if-else style.

C++ supports references, C doesn’t.

In C, scanf() and printf() are mainly used for input/output. C++ mainly uses streams to perform input and output operations. cin is a standard input stream and cout is a standard output stream.

6. What makes lists different from tuples in python?

Ans: The main difference between list and tuples is :

List can be modified whereas tuples cannot be modified. 

7. What are the different types of models available in SDLC?

Ans: Different types of SDLC models include:-

  • Waterfall Model
  • Iterative Waterfall Model
  • Agile Model
  • Spiral Model
  • Prototype Model
  • V model
  • RAD model

8. What are the key features of python?

Ans: The key features of python includes:

  • Object-oriented
  • Dynamically typed language
  • Interpreted language
  • Extensible
  • Dynamic memory allocation
  • Integrated

9. What are joins in DBMS?

Ans: Joins are used to retrieve data from multiple tables. In all databases, if you are joining n tables then we are using n -1 join condition.

10. What is SDLC OR Software Development Life Cycle?

Ans: SDLC or Software Development Life Cycle as the name suggest s is the life cycle representing the process of building software. SDLC models include all the phases of software development.     

The interviewer gave me two coding problems and asked me to solve one among them. As much as I can remember, the questions were:

  • Write a program to check whether a given number is prime or not.

Working:

For an input num

Initialize count = 0

Run an iterative for loop in iteration of (i) b/w 1 -> num

Check if num is divisible i

If divisible increment count

If num == 0 or num == 1 : Not Prime

If count > 2 : Not prime

Else, it is Prime

Code:

#include <stdio.h>

int main()

{

int i, count = 0;

int num = 19;

 

// checking number of divisors b/w 1 & num

for(i = 1; i <= num; i++)

{

if(num % i == 0)

count += 1;

}

// 0 & 1 are not prime number

if(num == 0 || num == 1)

printf("%d is not prime", num);

 

//if number of divisors are > 2 then not prime else prime

else if(count > 2)

printf("%d is not prime", num);

else

printf("%d is prime", num);

return 0;

}

// Time complexity O(N)

// Space complexity O(1)						
  • Write a program to remove vowels from a string.

Algorithm:

  • Initialize the variables.
  • Accept the input.
  • Initialize the loop.
  • Check and delete the vowels.
  • Store the string without vowels using another for loop.
  • Terminate both for loop.
  • Print the string without vowels.

Code:

#include<string.h>

#include<iostream.h>

 

int main() {

// Initializing variable.

char str[100];

int i, j, len = 0;

 

// Accepting input.

printf("Enter a string : ");

// gets(str);

scanf("%s", str);

 

len = strlen(str);

// Accepting input.

 

for (i = 0; i < len; i++) {

// Checking vowels.

if (str[i] == 'a' || str[i] == 'e' || str[i] == 'i' || str[i] == 'o' || str[i] == 'u' ||

str[i] == 'A' || str[i] == 'E' || str[i] == 'I' || str[i] == 'O' || str[i] == 'U') {

// Deleting vowels.

for (j = i; j < len; j++) {

// Storing string without vowels.

str[j] = str[j + 1];

}

i--;

len--;

}

str[len + 1] = '\0';

}

printf("After deleting the vowels, the string will be : %s", str);

return 0;

}						

I answered all questions correctly and the interviewer looked satisfied with my answers. Later I was selected for the technical round 2.

Round 4: Technical Round + HR Round:

Duration: 15 minutes.

This round was conducted in the morning around 10am. This time there were two interviewers, one for the technical part and another for the HR part.

This time the interviewer did not focus much on the technical part. Interviewer mostly asked me HR related questions which are listed below:

  1. Why should we hire you?
  2. What are your strengths and weaknesses?
  3. How good are you at handling pressure?
  4. And lastly, do you have any questions for us?

To read other companies interview experiences, visit Interview Dashboard: https://prepinsta.com/interview-experience/

2. Persistent Interview Experience

Persistent visited our campus for their hiring drives. As soon as I came to know about it, I immediately applied for it.  After few days, I got an E-mail for online test invitation. 

Round 1:- Online test Assessment

Objective Assessment:

Number of questions and time allotted= 50questions and 50mins.

This round had 4 sections:-

  • Computer Science
  • English Comprehension
  • Logical Ability
  • Quantitative Aptitude

Subjective Assessment:

This section contains coding questions with moderate level of difficulty.

Time Duration: 40mins

Total no. of questions: 2

The level of difficulty of this section was moderate to high.

Round 2:- Technical Round 1

After completing the online assessment, I was selected for the technical round where, I was asked questions mainly questions based on my resume, projects, internships and workshops.

  1. What are the different types of data structures?
  2.  Why python is an interpreted language?
  3. What are the difference between C and C++?
  4. What do you mean by semaphores?
  5. What do you mean by preprocessor?
  6. Write a code for redox sort.
#include 
using namespace std;

//Function to get the largest element from an array
int getMax(int array[], int n)
{
  int max = array[0];
  for (int i = 1; i < n; i++) if (array[i] > max)
      max = array[i];
  return max;
}

//Using counting sort to sort the elements in the basis of significant places
void countSort(int array[], int size, int place) 
{
  const int max = 10;
  int output[size];
  int count[max];

  for (int i = 0; i < max; ++i)
    count[i] = 0;

  //Calculate count of elements
  for (int i = 0; i < size; i++)
    count[(array[i] / place) % 10]++;

  //Calculating cumulative count
  for (int i = 1; i < max; i++)
    count[i] += count[i - 1];

  //Placing the elements in sorted order
  for (int i = size - 1; i >= 0; i--) 
  {
    output[count[(array[i] / place) % 10] - 1] = array[i];
    count[(array[i] / place) % 10]--;
  }

  for (int i = 0; i < size; i++)
    array[i] = output[i];
}

//Main function to implement radix sort
void radixsort(int array[], int size) 
{
  //Getting maximum element
  int max = getMax(array, size);

  //Applying counting sort to sort elements based on place value.
  for (int place = 1; max / place > 0; place *= 10)
    countSort(array, size, place);
}

//Printing an array
void display(int array[], int size) 
{
  int i;
  for (i = 0; i < size; i++)
    cout << array[i] << "\t";
  cout << endl;
}

int main() 
{
  int array[] = {112, 400, 543, 441, 678, 675, 9, 777};
  int n = sizeof(array) / sizeof(array[0]);
  cout<<"Before sorting \n";
  display(array, n);
  radixsort(array, n);
  cout<<"After sorting \n";
  display(array, n);
}						

I answered all the questions correctly but still had doubt in some of them. But later, I received an Email stating that I was selected for the second technical round.

Round 3: Technical Round 2

The questions asked in this round was basically asked on coding.

  1. Explain your final year project. Also tell about your roles and responsibilities.
  2. What do you mean by Software Development Life Cycle?
  3. Write a program to search an element in the linked list.

#include 
using namespace std;

struct node 
{
    int num;                
    node *nextptr;             
}*stnode; //node defined

void makeList(int n);                 
void showList();
void searchList(int item, int n);
 
int main()
{
    int n,num,item;
		
    cout<<"Enter the number of nodes: ";
    cin>>n;
    makeList(n);
    cout<<"\nLinked list data: \n";		
    showList();
    cout<<"\nEnter element you want to search: ";   
    cin>>item;
    searchList(item,n);

    return 0;
}
void makeList(int n) //function to create linked list.
{
    struct node *frntNode, *tmp;
    int num, i;
 
    stnode = (struct node *)malloc(sizeof(struct node));
    if(stnode == NULL)        
    {
        cout<<" Memory can not be allocated";
    }
    else
    {
                                  
        cout<<"Enter the data for node 1: ";
        cin>>num;
        stnode-> num = num;      
        stnode-> nextptr = NULL; //Links the address field to NULL
        tmp = stnode;
 
        for(i=2; i<=n; i++)
        {
            frntNode = (struct node *)malloc(sizeof(struct node)); 
 

            if(frntNode == NULL) //If frntnode is null no memory cannot be allotted
            {
                cout<<"Memory can not be allocated";
                break;
            }
            else
            {
                cout<<"Enter the data for node "<>num;
                frntNode->num = num;         
                frntNode->nextptr = NULL;    
                tmp->nextptr = frntNode;     
                tmp = tmp->nextptr;
            }
        }
    }
} 


void showList() //function to print linked list
{
    struct node *tmp;
    if(stnode == NULL)
    {
        cout<<"No data found in the list";
    }
    else
    {
        tmp = stnode;
        cout<<"Linked List: ";
        while(tmp != NULL)
        {
            cout<<"\t"nextptr;         
        }
    }
} 
void searchList(int item , int n) //function to search element in the linked list 
{  
    struct node *tmp;  
    int i=0,flag;  
    tmp = stnode;   
    if(stnode == NULL)  
    {  
        cout<<"\nEmpty List\n";  
    }  
    else  
    {   
        while (tmp!=NULL)  
        {  
            if(tmp->num == item)  //If element is present in the list
            {  
                cout<<"Item found at location: "<<(i+1); flag=0; } else { flag++; } i++; tmp = tmp -> nextptr;  
        }  
        if(flag==n) //If element is not present in the list
        {  
            cout<<"Item not found\n";  
        }  
    }  
}						

4. Write a code for finding the Harshad number.

Due to the coding questions, the second technical interview lasted for almost 40 minutes. 

Round 4: HR Interview

This round lasted for about 20mins which is basically a personality testing round as well as a document verification round.

The questions are:

  1. Tell me about yourself.
  2. Can you work under pressure?
  3. Why Persistent?
  4. What do you know about Persistent?
  5. Who is the CEO of Persistent?
  6. Do you have any questions for me?

Thank you.

3. Persistent Interview Experience

Persistent is a company with which I have always wanted to work. I registered for the Persistent Off-Campus Drive using a link given on Instagram by PrepInsta. Soon after registering, I learned that my resume had been chosen for the first round of interviews, namely the online assessment.

Round 1: Online Assessment

Objective Assessment

This round had 4 sections,

  • Section1: Computer Science section had 20 questions.
  • Section2: English Comprehension section had 12-14 questions.
  • Section3: Logical Ability section had 12-14 questions.
  • Section4: Quants section had 12-14 questions.
Subjective Assessment

This is the coding section which had 2 questions and the level of difficulty is moderate.

Total no. of questions = 50questions.

Total time allotted = 50mins

Round 2: Technical Interview 1

The following are the questions that were asked to me:

1. What are the 4 pillars of OOPS?

They asked me questions from each pillars.

2.  Define Lists.

Answer: A Lists are groups of related items connected to the preceding or succeeding data objects.

3. What is the function of Boot.ini?

4. Write a code for implementing a queue using two stacks.

#include<bits/stdc++.h>
using namespace std;
class Queue
{
public:
stack s1,s2;
void Push(int i)
{
cout<<“Pushing the element : “<<i<<endl;
s1.push(i);
}
int pop()
{
if(s1.empty()) {cout<<“The queue is empty”<<endl;return –1;}
while(!s1.empty())
{s2.push(s1.top());s1.pop();}
int b=s2.top();s2.pop();
cout<<“Popping the element : “<<b<<endl;
while(!s2.empty())
{s1.push(s2.top());s2.pop();}
return b;
}
void Show()
{
while(!s1.empty())
{
s2.push(s1.top());s1.pop();
}
while(!s2.empty())
{
cout<<s2.top()<<” “;
s1.push(s2.top());s2.pop();
}
}
int front()
{
if(s1.empty()) {cout<<“The queue is empty”<<endl;return –1;}
while(!s1.empty())
{s2.push(s1.top());s1.pop();}
int b=s2.top();
while(!s2.empty())
{s1.push(s2.top());s2.pop();}
return b;
}
};

int main()
{
Queue q;
q.Push(1);q.Push(5);q.Push(2);q.Push(11);
cout<<“The Queue now is : “;
q.Show();cout<<endl;
cout<<“The front value right now is : “<<q.front()<<endl;
q.pop();q.pop();
q.Push(12);q.Push(8);
cout<<“The front value right now is : “<<q.front()<<endl;
cout<<“The Queue now is : “;
q.Show();cout<<endl;
}

5. Write a program to print ASCII code for a character using JAVA.

//Java program to print ASCII values of a character

import java.util.Scanner;
class Main
{
	public static void main(String[] args)
	{
		//scanner class object creation
		
		char c='A';	
		
		//typecasting from character type to integer type
		int i = c;
		
		//printing ASCII value of the character
		System.out.println("ASCII value of "+c+" is "+i);
		
		
	}
}
						

Round 3: TR + HR

This round included both technical and HR questions, however I was not asked any coding questions. The questions are:

  1. Tell me about yourself.
  2. What are your responsibilities and roles in your project?
  3.  Are you ready to relocate?
  4. What are the stages of waterfall model?
  5. Who is the current CEO of Persistent?
  6. When was Persistent founded?
  7. What are tuples and lists?
  8. Do you have any questions for me?

Persistent paid a visit to our college campus this year as part of their hiring process. I’ll walk you through every step of the interview process. The majority of my interview preparation was done with PrepInsta’s courses and resources.

Round 1: Online Test

This is the first round of the Interview process. In this section there are two sections:

Objective Assessment

Total no. of questions and Time allotted: 50 questions 50mins

There were 4 sections in this round:

    • Computer Science
    • Quants
    • English
    • Logical
Subjective Assessment

This section had 2 coding questions and the time allotted to complete this section was 40mins

Below mentioned table is the Online test pattern for Persistent:

Persistent TestDetailsNo. of QuestionTime
Objective Round
  • Computer Science
  • Quants
  • English
  • Logical
50 Questions50 mins
Subjective RoundCoding Ability2 Questions40 mins
Advanced CodingCoding Test2 Questions45 mins

I was one of the top performer in the Online Assessment section. So, I was selected for the Advanced Coding round.

Round 2: Advanced Coding

In the advanced coding round, there were 2 questions and the time allotted was 45mins.

Round 3: Technical + HR Interview

After clearing the advanced coding test, I received an invitation for the interview round. This session lasted 30 minutes. I was asked the following questions:

1. Tell me about yourself.

2. Explain your final year project.

3. What do you mean by preprocessor directives?

4. Write a code for heap sort.

I solved this problem using the C++ programming language.

4. Persistent Interview Experience

#include
using namespace std;

void heapify(int arr[], int n, int i)
{
int largest = i;
int l = 2*i + 1;
int r = 2*i + 2;

//If left child is larger than root
if (l < n && arr[l] > arr[largest])
largest = l;

//If right child largest
if (r < n && arr[r] > arr[largest])
largest = r;

//If root is nor largest
if (largest != i)
{
swap(arr[i], arr[largest]);

//Recursively heapifying the sub-tree
heapify(arr, n, largest);
}
}

void heapSort(int arr[], int n)
{

for (int i = n / 2 - 1; i >= 0; i--)
heapify(arr, n, i);

//One by one extract an element from heap
for (int i=n-1; i>=0; i--)
{
//Moving current root to end
swap(arr[0], arr[i]);

//Calling max heapify on the reduced heap
heapify(arr, i, 0);
}
}

//Function to print array
void display(int arr[], int n)
{
for (int i = 0; i < n; i++)
{
cout << arr[i] << "\t";
}
cout << "\n";
}

int main()
{
int arr[] = {1, 14, 3, 7, 0};
int n = sizeof(arr)/sizeof(arr[0]);
cout << "Unsorted array \n";
display(arr, n);

heapSort(arr, n);

cout << "Sorted array \n";
display(arr, n);
}						

5. What is .net core?

6. Are you ready to relocate?

Yes Sir, I am ready to relocate.

7. Why Persistent?

8. Who is the Founder of Persistent?

Anand Deshpande is the Founder of Persistent.

9. Do you have any questions for us?

They also asked me a coding questions to solve.

I performed well in this round, which led to my selection to take the Super Achiever Test.

Round 4: Super Achiever Test

This round had maximum amount of questions on programming languages such as C, C++, JAVA, and Python etc.

Round 5: Drona Interview

This was the most significant round. A candidate who successfully completes this round will receive a package worth 9.3 LPA. This was mainly a coding section, and the round had lasted 40 minutes. I answered 2 or 3 coding-related questions. After clearing this stage, I received a job offer with a 9.3LPA.

Thank you.

5. Persistent Interview Experience

I’m delighted to share my interview experience with you. After learning about the Persistent working atmosphere, helpful team, and career advancement, I was amazed. I applied right away and was given an online test call.

It had 3 rounds:

  • Objective + Subjective Round
  • Advanced Coding Round
  • Technical Interview + HR Interview

Round 1: Online Assessment

The online assessment was divided into two sections: objective and subjective.

Objective Round

Time Duration: 50mins

In objective round there were 4 sections namely, Logical ability, Quantitative Ability, Verbal Ability and Computer science. The level of difficulty of this round was moderate and the total number of questions were 50.

Subjective Round

Subjective round had 2 coding based questions and the questions came from the topics such as C, C++, Python and JAVA.  The level of difficulty in this round was moderate and this total time to complete the round was 40mins

Round 2: Advanced Coding Round

Time Allotted: 45mins

I was chosen for the Advanced Coding Round due to my strong performance on the online test. This phase of the selection procedure is for the 7.8 LPA package. There were two questions and the level of difficulty was moderate. 

Round 3: Technical + HR Interview

I cleared the Advanced Coding Round and was invited to the Final Interview. This interview was entirely based on subject knowledge, projects based and the difficulty  level was easy-moderate. I was asked the following questions:

1. Tell me about yourself.

2. Explain your final year project.

3. What is  a final variable?

4. Define Default Gateway.

5. Write a code for the deletion in AVL Tree using a program.

I used JAVA programming language to solve this problem.

class Node
{
	int key, height;
	Node left, right;

	Node(int d)
	{
		key = d;
		height = 1;
	}
}

class AVLTree
{
	Node root;

	int height(Node N)
	{
		if (N == null)
			return 0;
		return N.height;
	}

	Node rotateRight(Node b)
	{
		Node a = b.left;
		Node c = a.right;

		a.right = b;
		b.left = c;

		b.height = Math.max(height(b.left), height(b.right)) + 1;
		a.height = Math.max(height(a.left), height(a.right)) + 1;

		return a;
	}

	Node rotateLeft(Node a)
	{
		Node b = a.right;
		Node c = b.left;

		b.left = a;
		a.right = c;

		a.height = Math.max(height(a.left), height(a.right)) + 1;
		b.height = Math.max(height(b.left), height(b.right)) + 1;

		return b;
	}

	int getBalance(Node N)
	{
		if (N == null)
			return 0;
		return height(N.left) - height(N.right);
	}

	Node insert(Node node, int key)
	{
		if (node == null)
			return (new Node(key));

		if (key < node.key)
			node.left = insert(node.left, key);
		else if (key > node.key)
			node.right = insert(node.right, key);
		else
			return node;

		node.height = 1 + Math.max(height(node.left),
							height(node.right));

		int balance = getBalance(node);
		if (balance > 1 && key < node.left.key)
			return rotateRight(node);

		if (balance < -1 && key > node.right.key)
			return rotateLeft(node);

		if (balance > 1 && key > node.left.key)
		{
			node.left = rotateLeft(node.left);
			return rotateRight(node);
		}

		if (balance < -1 && key < node.right.key)
		{
			node.right = rotateRight(node.right);
			return rotateLeft(node);
		}

		return node;
	}

	Node minValueNode(Node node)
	{
	    Node temp;
       for(temp=node;temp.left!=null;temp=temp.left);

		return temp;
	}

	Node deleteNode(Node root, int key)
	{
		if (root == null)
			return root;

		if (key < root.key)
			root.left = deleteNode(root.left, key);

		else if (key > root.key)
			root.right = deleteNode(root.right, key);

		else
		{

			if ((root.left == null) || (root.right == null))
			{
				Node temp = null;
				if (temp == root.left)
					temp = root.right;
				else
					temp = root.left;

				if (temp == null)
				{
					temp = root;
					root = null;
				}
				else
					root = temp;
			}
			else
			{

				Node temp = minValueNode(root.right);

				root.key = temp.key;

				root.right = deleteNode(root.right, temp.key);
			}
		}

		if (root == null)
			return root;

		root.height = Math.max(height(root.left), height(root.right)) + 1;
   	        int balance = getBalance(root);

		if (balance > 1 && getBalance(root.left) >= 0)
			return rotateRight(root);

		if (balance > 1 && getBalance(root.left) < 0)
		{
			root.left = rotateLeft(root.left);
			return rotateRight(root);
		}

		if (balance < -1 && getBalance(root.right) <= 0)
			return rotateLeft(root);

		if (balance < -1 && getBalance(root.right) > 0)
		{
			root.right = rotateRight(root.right);
			return rotateLeft(root);
		}

		return root;
	}

	void preOrder(Node node)
	{
		if (node != null)
		{
			System.out.print(node.key + " ");
			preOrder(node.left);
			preOrder(node.right);
		}
	}

	public static void main(String[] args)
	{
		AVLTree tree = new AVLTree();
   	        tree.root = tree.insert(tree.root, 3);
		tree.root = tree.insert(tree.root, 1);
		tree.root = tree.insert(tree.root, 5);
		tree.root = tree.insert(tree.root, 0);
		tree.root = tree.insert(tree.root, 2);
		tree.root = tree.insert(tree.root, 4);
		tree.root = tree.insert(tree.root, 6);
		System.out.println("Preorder traversal is : ");
		tree.preOrder(tree.root);
		tree.root = tree.deleteNode(tree.root, 6);
               tree.root = tree.deleteNode(tree.root, 5);
               tree.root = tree.deleteNode(tree.root, 4);
		System.out.println("");
		System.out.println("Preorder traversal after "+"deletion of [6,5,4] :");
		tree.preOrder(tree.root);
	}
}
						

6. What do you know about Persistent?

Persistent Systems Limited is a multinational corporation that specialises in software, services, and technological innovation. The firm provides full product life cycle management services. The company provides services across the product life cycle, allowing us to work with a diverse set of customers to create, upgrade, and deploy their software products.

7. When was Persistent established?

Persistent was established in 1990.

8. Any questions?

Thank you.

6. Persistent Interview Experience

Our college placement officer notified me of Persistent’s job placement drive. As soon as I heard about it, I immediately applied. After a week, Persistent sent me an email letting me know that my application had been selected for the Online test, which was the following round of interviews. The interview process had 5 rounds:

  • Online Test
  • Advanced Coding Round
  • TR + HR Interview
  • Super Achiever Round
  • Drona Interview

Round 1: Online Test

Online Test had two sections, Objective and Subjective Round.

Objective Round:

Total Time limit: 50 questions

The Objective round had 4 sections and that are, Quantitative Aptitude, Logical Ability, Verbal Ability, Computer Science.  Quantitative Aptitude had 20 questions, Logical Ability had 12-14 questions, Verbal Ability had 12-14 questions and Computer science had 12 questions approx. 

Subjective Round:

This particular sections had 2 coding questions and time was 40mins.

Round 2: Advanced Coding Round

I had 45 minutes to finish this phase of the round, which included 2 coding questions. In this round, the following questions were asked:

1. Write a code for a given integer N representing the number of pairs of parentheses, the task is to generate all combinations of well-formed(balanced) parentheses.

2. Write a code for a sort first half in ascending order and second half in descending.  

After completing this phase, I was selected to move on to the technical and human resources interview.

Round 3: TR+HR Interview

Questions were:

1. Tell me about yourself.

2. What are the different types of data structures?

3. What does Boot.ini do?

4. Explain your final year project including your roles and responsibilities.

5. Explain Priority queue implementation using array.

//C program to Demonstrate Priority Queue
#include
#include
#define MAX 100


// denotes where the last item in priority queue is
// initialized to -1 since no item is in queue
int idx = -1;

// pqVal holds data for each index item
// pqPriority holds priority for each index item
int pqVal[MAX];
int pqPriority[MAX];



int isEmpty(){
    return idx == -1;
}

int isFull(){
    return idx == MAX - 1;
}
// enqueue just adds item to the end of the priority queue | O(1)
void enqueue(int data, int priority)
{
    if(!isFull()){
        
        // Increase the index
        idx++;
 
        // Insert the element in priority queue
        pqVal[idx] = data;
        pqPriority[idx] = priority;
    }
}

// returns item with highest priority
// NOTE: Max Priority Queue High priority number means higher priority | O(N)
int peek()
{
    // Note : Max Priority, so assigned min value as initial value
    int maxPriority = INT_MIN;
    int indexPos = -1;
 
    // Linear search for highest priority
    for (int i = 0; i <= idx; i++) { 
        // If two items have same priority choose the one with 
        // higher data value 
        if (maxPriority == pqPriority[i] && indexPos > -1 && pqVal[indexPos] < pqVal[i]) 
        {
            maxPriority = pqPriority[i];
            indexPos = i;
        }
        
        // note: using MAX Priority so higher priority number
        // means higher priority
        else if (maxPriority < pqPriority[i]) {
            maxPriority = pqPriority[i];
            indexPos = i;
        }
    }
    
    // Return index of the element where 
    return indexPos;
}

// This removes the element with highest priority
// from the priority queue | O(N)
void dequeue()
{
    if(!isEmpty())
    {
        // Get element with highest priority
        int indexPos = peek();

        // reduce size of priority queue by first
        // shifting all elements one position left
        // from index where the highest priority item was found
        for (int i = indexPos; i < idx; i++) {
            pqVal[i] = pqVal[i + 1];
            pqPriority[i] = pqPriority[i + 1];
        }
 
        // reduce size of priority queue by 1
        idx--;
    }
}

void display(){
    for (int i = 0; i <= idx; i++) {
        printf("(%d, %d)\n",pqVal[i], pqPriority[i]);
    } 
}
// Driver Code
int main()
{
    // To enqueue items as per priority
    enqueue(5, 1);
    enqueue(10, 3);
    enqueue(15, 4);
    enqueue(20, 5);
    enqueue(500, 2);
    
    printf("Before Dequeue : \n");
    display();
 
    // Dequeue the top element
    dequeue(); // 20 dequeued
    dequeue(); // 15 dequeued
    
    printf("\nAfter Dequeue : \n");
    display();

    return 0;
}
						

6. What are your strengths and weaknesses?

7. What is DHCP and what it is used for?

8. Why should I hire you?

9. Who is the current CEO of Persistent?

Sandeep Kalra is the current Chief Executive Officer of Persistent Systems

Round 4: Super Achiever Round

Candidates who pass the TR and HR rounds with high marks are shortlisted for the Super Achiever Test, which includes coding language questions. This round had a moderate-high degree of difficulty.

Round 5: Drona Interview

The majority of the questions in this phase were based on coding languages, and I received an annual package of 9.3LPA.

Thank you

Persistent Interview Preparation Course

Check out our Persistent Interview Preparation Course on Prime, which includes:-

  • Persistent technical Interview Questions and Answers
  • Persistent HR Interview Questions and Answers
  • Persistent Certification Questions
  • Written Persistent Interview Experience
  • and more.

Prime Course Trailer

Related Banners

Get PrepInsta Prime & get Access to all 200+ courses offered by PrepInsta in One Subscription

FAQ on Persistent Interview Experience

Question: What are L1 and L2 interviews in Persistent Systems?

Answer:-

Persistent systems interview process has two interviews one is L1 and other is L2. L1 interviews mainly concentrate on your projects and programming knowledge whereas the L2 interview is taken to check the technical and subjective knowledge of an individual.

Question: Is a Persistent interview tough?

Answer:-

Overall difficulty level is very basic. If a person prepares well, they can crack the exam easily.