Javatpoint Logo
Javatpoint Logo

Adobe Interview Questions

About the company: Adobe

Adobe Systems Incorporated, also known as Adobe, is an American multinational company of Computer software. Adobe is headquartered in San Jose, California, United State with total 17000 employees across the world (in 2017). Adobe was established by John Warnock and Charles Geschke in December 1982. It was founded primarily to develop and sell the PostScript page description language. The Company provides various creative software products and services which are used by professional, application developers, enterprises and consumers. Adobe is famous for Photoshop, Acrobat Reader, Portable Document Format (PDF), Adobe Creative Suite, and Adobe Creative Cloud. Adobe mainly focused on three Segments, which are Digital media, Digital marketing, and print and publishing. Adobe is one of the best company to work for, and also Ranked as 5th best U.S. Company in 2003. Adobe is given ranked as 51th for Best Global Brands by Interbrand in year 2018.

Key people of Adobe:

CEO and Chairman: Shantanu Narayen

CFO: John F Murphy

CTO: Abhay Parasnis

Adobe Recruitment process:

Adobe recruitment process is one of the difficult recruitment processes. Adobe selects the candidates very carefully, with lots of screening to choose the best talent of all the candidates. The recruitment process of Adobe is also different from other companies as it takes 5- 6 rounds for an Interview. Following are the main rounds of the recruitment process.

  1. Online Written Round
  2. Group discussion Round
  3. Multiple technical Interview Rounds
  4. Director Round
  5. HR Round

Academic Criteria:

  • 65% in X and XII, and 70% in graduation or CGPA 7.
  • No backlogs at the time of applying.

First Round: Online Written Round


This first round will be the Online Test, which consists of two sections mainly. The first section will be based on basic aptitude and reasoning. The second section will contain the MCQ questions based on C/C++/JAVA output based questions, and coding question, which will be subjective. This round is organized on Hackerrank Platform, in which candidate can code in any of preferred language(C, C++ or Java). The first section of this round will be the most comfortable round of complete recruitment process but needs a good speed to clear it.

Test Pattern for the first round:

Sections Time duration Number of questions Topics
Aptitude 15 min 15 questions Quantitate Aptitude
  • Arithmetic Algebra
  • Time and work
  • Profit & Loss
  • Geometry
  • Speed & distance
  • Percentage
Reasoning Section 30 min 30 questions Logical Reasoning
  • Puzzles
  • Data interpretation
  • Blood relation, etc.
Technical(MCQ) +Coding test(subjective) 75-120 min 15-20 Questions
  • C language
  • Data Structure
  • Bit Manipulation

A. Quantitative and Reasoning Section

  • The quantitate aptitude section of the recruitment process is relatively easy, but candidates need to have basics clear and must have a good speed. There is no negative marking.
  • The analytical section contains the tricky questions which can consume more time so be careful while attempting these section.

Sample aptitude questions with the answer to prepare for the first round:

Aptitude Interview Questions

1) If a bulb in a room flashes on every 9 seconds, how many times will it flash in ¾ of an hour?

  1. 301
  2. 300
  3. 250
  4. 401

Answer: a

Bulb flash on every 9 seconds.
¾ of an hour= ¾* 60 = 45 min
45 min= 45*60 = 2700 seconds
So light will flash in ¾ of an hour= 2700/9= 300 times
But count starts after the first flash hence the total number of time = 300+1= 301

2) The present age of Arjun, Ram, and Vivek is in the proportion of 4:7:9. If 9 years ago, the sum of their age was 53, then what will be their present age?

  1. 16,28,36
  2. 8,20,28
  3. 20,35,45
  4. None of the above

Answer: a

Explanation: The present age of Arjun, Ram, and Vivek is in the ratio of 4:7:9
Let, the present age of Arjun= 4x
Present age of Ram= 7x
Present age of Vivek= 9x
As per question
(4x-9)+ (7x-9) + (9x-9) = 53
So the present age of Arjun= 16, Ram= 28, and Vivek = 36

3) If the average age of employees in an office is 40 years and 120 new employees joined the company whose average age is 32 years. Hence the average age of all employees decreased by 4 years. So what is the total number of employees in the company now?

  1. 1200
  2. 120
  3. 360
  4. 240

Answer: d

Let's x be an initial total number of employees
Initial average age of employees = 40 years
(Initial total age of employee)/x=40
Initial total age of employees= 40x
Total age of 120 employees= 32*120
As per question:
Average age is decreased by 4, hence
(40x+32*120)/(x+120) = (40-4)
So total number of employees now in the company = 120+120= 240

4) Find the largest 4 digit number, which will be exactly divisible by 88?

  1. 9768
  2. 9988
  3. 9944
  4. 8888

Answer: c

The largest 4 digit number= 9999
9999/88= remainder =55
So the new number will be = 9999-55= 9944
It will be completely divisible by 88; hence the largest number will be 9944

5) Compute the sum of the first five prime numbers?

  1. 11
  2. 18
  3. 26
  4. 28

Answer: d

Required sum of five prime number = (2+ 3+5+7+11) = 28

6) 'A' alone can complete 1/4th of the work in 2 days. 'B' alone can complete 2/3th of the work in 4 days. If all the three workers work together, they can complete the work in 3 days so what part of the work will be completed by 'C' alone in 2 days?

  1. 1/12
  2. 1/8
  3. 1/16
  4. 1/20

Answer: a

Let's one day work by C = x
1-day work by A= 1/8
1-day work by B= 1/6
As per question:
1/8+1/6+x= 1/3
By solving the equation:
If x's
1 day work = 1/24
So two day's work by c = 1/12

7) One day Ravi started moving 30 minutes late from home and reached his office late by 50 minutes while driving 25% slower than his usual speed. How much time does Ravi usually take to reach his office from home?

  1. 20 min
  2. 80 min
  3. 60 min
  4. 40 min

Answer: c

Let suppose t is usual time to reach to office from home, Usual time and speed time= t, speed = s
Late time and speed 25% slower speed = 3/4s, time= t+20
D = s*t
D= (3s/4)*(t+20)
S*t= (3s/4)*(t+20)
4t= 3t+60
t= 60 min.

8) A shopkeeper sells one table for Rs. 840 at a gain of 20% and another table for Rs. 960 at a loss of 4%. What will be his total gain or loss?

  1. 100/17% gain
  2. 100/17% loss
  3. 20/3% gain
  4. None of them.

Answer: a

Cost price for 1 table = (100*840) / (100+20) = 700
Cost price for 2 table = (100*960) / (100-4) = 1000
Total cost price of tables = 1000+700=1700
Total selling price = 840+960 = 1800
Gain = selling price- cost price
Gain = 1800-1700= 100
Gain%= (100*100) / 1700
Gain% = 100/17

9) If in a conical tent, there is a space for accommodation of 10 persons. Each person must have 6 sq. Meter space to stand and 30 cubic meters of air to breathe. What will be the height of the cone?

  1. 15m
  2. 37.5m
  3. 75m
  4. 150m

Answer: 30m

If, Space occupied by 1 person= 6 sq. m
Space occupied by 10 person = 60sq. m
Hence base area of conical tent= pi*r*r = 60
As each person needs air to breath = 30 cubic meter
10 person needs air to breadth= 300 cubic meter
So, the volume of the conical tent, (1/3)*pi*r*r*h= 600
20*h= 600
h= 30m

10) A can do a piece of work in 10 days, B can do the same work in 12 days and Ravi in 15 days. They all start the work together, but A leaves after 2 days and B leaves 3 days before the completion of work. Find the days in which work will be completed.

  1. 6 days
  2. 5 days
  3. 9 days
  4. 7 days

Answer: d

The work completed by,
A in 10 days, B in 12 days, C in 15 days,
Total work done to be completed= L.C.M of (10, 12, 15) = 60unit
So A can do 6 unit of work in 1 day, B can do 5 unit, C can do 4 unit
As per the question, Let in x days' remaining work will be completed, then
(6+5+4)*2+ (5+4)*(x-3) + (4*3) = 60 unit
After solving,
30+ 9(x-3) +12=60
X=5 days
So total required days = 5+2= 7 days.

Reasoning Questions:

1) If MADRAS can be coded as NBESBT, then how can we code BOMBAY?


Answer: C

M A D R A S <=========> N B E S B T
Every letter is equivalent to its next letter, so M with N, A with B, D with E, and so on.
B O M B A Y can be written as C P N C B Z

2) Which will be the next term in the series: 3, 4, 6, 9, 13,_______

  1. 16
  2. 15
  3. 18
  4. 17

Answer: c

As in the given series, 3, (3+1=4), (4+2=6), (6+3=9), (9+4=13), so__ (13+5=18) Hence next term will be 18

3) If w, x, y z are integers. There is the condition, that expression x-y-z is even, and the expression y-z-w is odd. If x is even what must be true?

  1. w must me odd
  2. y-z must be odd
  3. z must be even
  4. z must be odd

Answer: a

As x is an even number, then x-y-z must be even if y and z both be odd, and y-z-w must be odd when w must be odd

4) What will be the next term in the series of BXF, DVI, FTL, HRO,_____

  1. JPL
  2. KPL
  3. JOL
  4. None of them

Answer: d

As in given series
B X F, D V I, F T L, H R O
For the first letter,
B-C-D, D-E-F, F-G-H, H-I-J
For 2 letter
X-w-V, V-U-T, T-S-R, R-Q-P
For 3 letter
F-G-H-I, I-J-K-l, L-M-N-O, O-P-Q-R So next term should be JPR so answer will be none of them, Hence the next term in series will be- JPR

5) If in some code language,

i. Guda buka means Clear water
ii. Pin gola means Overcast sky
iii. Pin saf buka means Clear blue sky
Then, which of the following word means BLUE?

  1. bUKA
  2. saf
  3. Guda
  4. Pin

Answer: b

By 1 and 2 and 3 statement, it is found that buka means clear, pin means sky, so saf means blue.

6) If Win is related to Competition, then Invention is related to.

  1. Experiment
  2. Discovery
  3. Laboratory
  4. Trial

Answer: a

7) Rahul said to Akash, "That boy playing with the football is the younger of the two brothers of the daughter of my father's wife." How is the boy playing football related to Rahul?

  1. Son
  2. Brother
  3. Brother-in-law
  4. Cousin

Answer: b

My father's wife= Rahul's mother
Daughter of my father's wife= Rahul's sister
Younger of the two brothers= Rahul's b brother.

8) By introducing Riya, Sam says, "She is the wife of the only nephew of only brother of my mother." How is Riya related to Sam?

  1. Wife
  2. Sister-in-law
  3. Sister
  4. Data is inadequate

Answer: a

The Only brother of my mother = Sam's uncle
Wife of the only nephew= Sam's wife
Hence Riya is Sams wife.

9) Engineer: Map::Bricklayer:? Find the word.

  1. Template
  2. Mould
  3. Cement
  4. Design

Answer: a

10) Find out the odd word form the following options:

  1. Steering wheel
  2. Tyre
  3. Car
  4. Engine

Answer: c

In the options Steering wheel, Tyre, and Engine all are the part of the car.

B: Sample Technical MCQ

The second section of the first round is technical MCQ and coding section. This section is little tough to crack. It requires a thoroughly study of concepts for data structure, C, Bit manipulation, and algorithms. There are some sample questions for Adobe interview with the answers.

1) What will be the output for the following:

int main()
     int i;
     int arr[5] = {5};
     for (i = 0; i < 5; i++)
     printf("%d ", arr[i]);
     return 0;

  1. 0 0 0 0 0
  2. 5 0 0 0 0
  3. 5 5 5 5 5
  4. Error

Answer: b

2) In C language, parameters are always_______

  1. Passed by reference
  2. Passed by value result
  3. Passed by value
  4. Pointer variable are passed by reference and non-pointer variable are passed by value

Answer: c

3) Find the output for the following code:

#include <stdio.h>
int main()
printf("%d", main);
return 0;

  1. Compile time error
  2. Address of the main function
  3. 0
  4. Any random value

Answer: b

4) What is a use of the following statement?

scanf ("%3s", str);

  1. Reads maximum 3 character
  2. Reads 3 character from console
  3. Take the string str in multiple of 3
  4. None of the above.

Answer: a

5) Find the output for the following code.

char p[10];
char *s = "computer";
int length = strlen(s);
int i;
for (i = 0; i < length; i++)
p[i] = s[length - i];
printf("%s", p)

  1. retupmoc
  2. computer
  3. null value
  4. No output will print

Answer: d

6) What will be the maximum number of binary trees that can be formed using three unlabelled nodes?

  1. 1
  2. 4
  3. 6
  4. 5

Answer: d

7) What will be the total number of structurally different possible binary trees with 3 nodes?

  1. 10
  2. 5
  3. 168
  4. 245

Answer: b

The number of structurally possible trees = !2N/ (! N*(! (N+1))
Where n= number of nodes, here N=3 hence,
The answer will be 5.

8) Which sorting algorithm can be used to sort a random linked list with minimum time complexity?

  1. Quick Sort
  2. Merge Sort
  3. Insertion Sort
  4. Heap Sort

Answer: b

9) Compute the output for the following code:

struct st
      int x;
      static int y;
int main()
      printf("%d", sizeof(struct st));
      return 0;

  1. 8
  2. 4
  3. Compile time error
  4. Run time error

Answer: c

In C language, we cannot have static members inside the struct and unions types, so this program will generate the compile-time error.

10) Compute the output for the following code:

#include <stdio.h>
int main()
   int arr[] = {5, 8, 10, 12,18};
   int *p = arr;
   p += 3;
   printf("%d", *p);
   return 0;

  1. 10
  2. 12
  3. 18
  4. No output.

Answer: b

Coding Questions:

This section is a coding round in which a candidate needs to write code for the given questions in any preferred language(C/C++/Java). Some of the coding questions are given below for practice.

1) Write code to reverse the linked list?


Input linked list
68 30 14 20 
Reversed Linked list 
20 14 30 68 

2) Write a code which multiplies two numbers using the minimum number of additions.


The product of 10 and 20: 200

3) Write a program which swaps two integer pointers?


Before swap 20 30
 After swap 30 20

4) Write a program to calculate the nth term of the Fibonacci series?


The series is 0 1 1 2 3 5 8 13
The nth term is 13

5) Write a program to count the total Set Bits in a number?


Total bits are=4 Total zero bits are=0 Total one's bits are= 4

6) Write an algorithm to compute the output for X^N, having complexity log n.


The output for x^n, where x=6, n=3, 216

7) Write code to check a binary tree is BST tree or not?


Input Tree is 
 1  3  4  7  8  9  10
Tree is BST or not: true
Tree is BST or not: true
Input Tree is 
 1  3  4  20  7  8  9  10
Tree is BST or not: false
Tree is BST or not: false

8) Write a code to find the nth element from the end in a list?


18 20 30 15 10 16 
4th node from end is: 30

Technical Round interview questions:

This is the third main round of the Adobe interview process. It contains various rounds. In this round, candidates are checked on their technical skills. If candidate clears one round, then he/she can proceed for the next round.

Technical First round

1) Differentiate between typedef and #define?

The primary difference between typedef and #define is given below:

  1. typedef is used to define the types or to give a new name to types whereas #define is pre-processor directive, which is used to define the macro.
  2. typedef gives the actual definition to the new datatype, whereas #define is used just to copy-paste the value definition where it is used.
  3. typedef is known to the compiler, but #define is just known to pre-processor.



Andhra Pradesh

2) Why we use sprint() function?

sprint() is a C library function which is termed as "string print." sprintf function is used to hold the formatted data output as String.




multiplication of 10 and 5 is 2

3) How to differentiate between char a[]= ?String and char*a =?String.

The statements:

  1. Char a[ ]= "computer";
  2. char *a= "computer";

The difference between the above two statements is that the first statement will create an array of 9 elements will automatically add the null pointer and the size of array 'a' will be 9.

But the second statement will create a pointer variable. We cannot perform any array operation on this pointer variable as it will be stored in read-only mode.




Example 2

4) Explain Data breakpoints? Where can we use this?

Data Breakpoint is a strong feature available for C++, which allow us to stop the execution when the value stored at a particular memory location changes. Data breakpoints can be used to solve the memory corruption issue.

5) Differentiate between new and malloc()?

The new and malloc() both are used for dynamic memory allocation. But there are various differences between new and malloc, which are given below,

  • new is an operator in C language, whereas malloc() is a function for memory allocation.
  • new operator calls the constructor, whereas malloc() does not call the constructor.
  • The memory allocated from the "free store" by new operator, whereas memory allocated from the heap by malloc() function.
  • On failure of execution, new operator throws an exception, whereas malloc() returns Null.
  • new operator does not require the sizeof() operator, malloc() function requires the sizeof() operator to know the memory size.

6) Differentiate between process and thread?

Following are the basic differences between the process and the thread:

  • The Process is an execution of a program, whereas thread is a lightweight process.
  • A Process does not share the resources like memory, whereas thread can share the resources.
  • The Process takes more time for context switching, whereas thread requires less time for context switching.
  • The Process is less efficient as compared to a thread in terms of communication.

7) What is C++ Shorthand property? What is its role?

C++ provides shorthand property, which enables a programmer to use the assignment operator in a shorter way.


x=x+5; can be written as x+=5 using shorthand

x=x-10; can be written as x-=10;

8) What do you understand by function prototype declaration and definition?

Function prototype declaration: function prototype declaration statement gives the following information about the function:

  1. It tells the symbolic name of the functions.
  2. Information about the return type of function.
  3. Information about the argument passed as input with their datatypes.


Where add is the name of a function, and a, b and c are the passed arguments.

Function definition: The function definition is the actual source code of the function. Function definition gives information that what that function actually does.


9) What do you understand by Conditional Operators?

  • Conditional operators are ternary operators with three operands, which are used as shorthand in place of the if-else statement.
  • Conditional operators return the first expression if the condition is true and return second expression if the condition is false.



10) What is volatile Keyword in C?

The volatile keyword is a qualifier which is used with the variables at the time of declaration.

It gives the information to the compiler that variable's value can be changed at any instance of time even it does not appear to be modified.

Volatile keyword is used to declare a variable as a volatile variable. It can be used before the datatype or after the data type.


11) What do you understand by OS? Explain in Easiest way.

  • An operating system is a program which is an interface between the user and hardware
  • It manages all other programs in the computer after loaded, by a boot program.
  • OS works as a backbone for the computer or mobile devices.
  • Examples of an operating system are UNIX, LINUX, MS- Windows, MAC-OS, etc.

12) Why we use pointers in C and C++?

Pointers are the variables which stores address of another variable in C and C++.

Following are the main reasons that why we use pointers in C and C++:

  • Pointers can be used for dynamic memory allocation.
  • Pointers help to perform array arithmetic and accessing an array element.
  • Pointers are helpful in creating API.
  • Pointers are used in the implementation of the data structure.
  • Pointers are beneficial to pass by reference.

13) Differentiate between call by pointer and call by reference?

In C++ language, we can pass an argument to a function by reference or by pointer, both are the correct approaches and precisely same, but the basic differences between both are:

  • We can assign pointer as a null pointer directly, but it cannot be done with reference.
  • We can reassign a pointer, but reference cannot be reassigned.

14) What do you understand by calloc() and malloc()?

In C, calloc() and malloc() are the library functions, and both are used for dynamic memory allocation. Which means it allocates the memory at run-time as per requirement from the heap section.

malloc(): malloc() function is a library function which allocates a single block of requested memory and return a pointer void to it, which can be cast to any return type. It returns the null value if sufficient memory is not available.


calloc(): calloc() function is also a library function which allocates the multiple blocks of memory of requested size. It initially initializes the memory to zero and returns NULL if memory is not sufficient.


15) Explain the term, "virtual machine"?

The Virtual machine is a software program which behaves like a separate computer. It works same as the main computer and also capable of running applications and other programs. A virtual machine, called as a guest is created within the main machine called as host. There are two types of virtual machines depending upon their uses.

  1. System virtual machine
  2. Process virtual machine

16) What do you understand by Synchronization?

Synchronization is a process of performing two things simultaneously at the same time.

Synchronization is of two types:

  • Process or thread synchronization
  • Data synchronization

Process synchronization: Process/thread synchronization is a mechanism which controls the access of shared resources between two concurrent threads. It ensures that two concurrent thread do not share the same resource at the same time. Synchronization deals with problems such as deadlock, starvation, busy waiting, etc.

Data Synchronization: Data synchronization is a technique which ensure the integrity of data between two devices. With the help of data synchronization, it keeps multiple copies of single data in different location. It includes file synchronization, journaling, Raid, etc.

17) Explain the term Mutex? What is Reader-writer problem?


  • In multithreading, Mutex(mutual exclusion object) is a program object which provides locking mechanism to the threads.
  • Mutex ensures the proper thread synchronization between two or more threads. Only one thread can execute a program or resources at a time.

Reader-writer problem:

In OS, a situation is called as Reader-writer problem for a particular shared data area which involves:

  • Any number of reader can read from that shared area, but only one writer can write at one time.
  • No other process can access that area when one writer is writing in that particular area.
  • If in that shared area there are non-zero readers then writer cannot write there.

This problem mostly occurs in Concurrency or multithreading.

18) Why we use void keyword?

We can use void keyword for two purposes:

Function parameter: When we use void as function parameter, it means function does not accept any value.


Function Return type: When we use void as function return type, it means it will not return anything.


void keyword can also be used with the pointers which makes it more powerful as, when void is used with pointer it termed as generic type, which can hold address of any type.

19) Explain the exit controlled loop?

An Exit controlled loop is a type of loop which first execute the instruction and then checks the condition. When we use exit controlled loop, then at least one time execution occurs even if the condition is false. The do-while loop is an example of exit controlled loop.

20) What is a DNS server?

DNS server is a main part of DNS (Domain Name System) infrastructure. It is a computer server which stores and manages the database of IP addresses and their respective Hosts name.

DNS server is also called as name server, which is used to map the domain name to the corresponding IP address.

A single domain name can have multiple IP's that means IP addresses can vary with time.

Adobe Interview Questions

Technical Second Round

1) What are the different layers in TCP/IP models? Explain the protocols at each layer?

TCP/IP model is termed as Transmission Control Protocol/Internet Protocol. TCP/IP model is a practical and concise version of the OSI model. Current network architecture depends on the TCP/IP model. It consists of mainly four layers:

  • Application Layer
  • Transport Layer/Host-to-host layer
  • Network Layer
  • Link Layer/Network Access Layer

1. Link Layer:

is responsible for the physical flow of data through the network. It consists of hardware devices such as optical fibre, coaxial cable, or twisted pair, etc. In this layer, data travels in the form of bits and frames.

The protocol used at this level is Ethernet, token ring, etc.

2. Internet Layer:

Internet layer is the Upper layer of the Link layer. This layer converts the data into data-packets, called as IP datagrams and send these datagrams across the host through the network. These datagrams consist of host and destination address, by which they are forwarded through the network.

The primary protocols used at this level are:

  • IP (internet protocol): This protocol is responsible for forwarding the packets from source host to destination using an address which is consisted by packet header. IP has two main versions IPv4 and IPv6.
  • ICMP (Internet control message protocol): This protocol is mainly responsible for informing the problem in the network.
  • ARP (Address resolution protocol): ARP protocol is an essential protocol of the TCP/IP model, and it is responsible to resolve an IPv4 address to physical address.

3. Transport Layer: This is the third layer of the TCP/IP model, which is responsible for the communication between the source host and destination host and error-free data transmission.

This layer consists of mainly two protocols:

TCP (Transmission Control Protocol): TCP is a reliable protocol for error-free communication between the source and destination host. It's a connection-oriented protocol.

UDP (User Datagram Protocol): This protocol is not reliable as compare to TCP protocol, we can use this protocol which does not require reliable communication. It is a connectionless protocol.

4. Application layer: This is the top layer of the TCP/IP model. It describes the application protocol and provides node-to-node communication.

This layer contains various higher level protocols which are:

  • HTTP and HTTPs(Hypertext transfer protocol)
  • FTP(File transfer protocol)
  • SSH( Secure Shell)
  • TFTP(Trivial file transfer protocol)
  • SMTP(Simple mail transfer protocol)
  • DHCP(Dynamic host configuration protocol)

2) Explain the working of the stack while calling a function? When stack overflow occurred?

The Stack is a particular area of RAM, just like as Heap. But stack is used to store local variables, parameters and return values used inside a function and stack stores and deallocates memory automatically.

When we call a function, stack performs following steps:

  • Push space for the return variables.
  • Push parameters in the stack.
  • Push the local variable of the function.

When we call a function, stack adds a stack frame which consists space for actual parameters, local variables, return address, etc. This stack frame lives in active frame till the time function is being called, and once execution finishes then stack remove that stack frame from the stack.

Stack Overflow: As we know that stack deallocated the memory and free up space after execution but still there is a condition when complete stack space used, and there is no more space to save the variables, so this is called stack overflow. It occurs because the space size of the stack is also limited in size, and at the time of execution if we allocate more memory than available memory than overflow occurred and the program got crashed. Some example for stack overflow are:

  • Use of Infinite recursion
  • Use of very large stack variable
  • Use of very deep recursion

3) Explain the meaning for the declaration: int*const p & const int* const p?

int * const p: By declaring a pointer in such a way that means we are declaring point variable p as constant, which cannot be changed. We cannot change the address its holding, or it cannot point to other variables. If we try to change the address of p, then it will give a compile time error.

const int * const p: By declaring a pointer in such a way means, we cannot change the address of the pointer as we as we cannot change the address at that address. If we try to do it, then it will generate a compile time error.

4) What are default functions in C++

C++ provides the six default member functions which are given below:

  • Default constructor
  • Destructors
  • Copy constructors
  • Copy assignment operators
  • Move constructors
  • Move assignment operators

5) Which data structure is used for the dictionary?

To implement a dictionary, which type of data structure should be used depends on what we required, there are some following data structure which can be used for implementation of the dictionary.

Hash-table: If we want a simple dictionary with no option for the prefix, or nearest neighbour search then we can use Hashing or Hashtable for the dictionary.

Trie: It can be a good option if we want to add prefix and fast lookup. But, it takes more space than other data structures.

Ternary Search Tree: If we want all the qualities like trie but do not want to give the more space then we can use ternary search tree.

BK-tree: BK-tree is one of the best data structure if we want specifications like spell checker, find the similar word, etc.

6) How can you find a unique word from a String which also has duplicate words?

We can find the unique word from a string by using HashMap, Set and Regex.

Candidate can also be asked for questions like:

  1. Implement Snake and Ladder game and find the minimum number of moves required to reach from 1 to 100 in a given game, using Dynamic Programming.
  2. Model a data structure for a DFA that takes an event as parameter and performs a desired action.
  3. Solve the three mislabelled jars problem.
  4. How to compare two binary trees?
  5. How to prove that in a tree the number of internal nodes is one less than leaves?

Technical third round or director Round

This round is a challenging round as in this round the manager ask the questions based on your projects, so candidate must have in-depth knowledge about their project which they have done and some problematic puzzles which candidates needs to solve.

1) Write an algorithm for the tower of Hanoi?

Tower of Hanoi is a very popular mathematics puzzle. In this puzzle, we are given three disk and three rods. Disks are arranged in the first rod like a stack, in ascending order. We need to transfer the disk from the first rod to third in the same order.

There are some rules as well:

  • We can move one disk at one time
  • We can only move the uppermost disk
  • Disk always should be in ascending order, i.e., a bigger disk cannot put on a smaller one.


Let's suppose there are thee towers Beg, Aux, and Dest, and there are two disks where n disk is larger disk and n-1 is smaller one.


Step 1: shift n-1 disk from tower Beg to Aux

Step 2: shift n disk from Beg to End

Step 3: shift disk n-1 form tower Aux to C.

2) Write a code to find the loop in a Linked list? How will you remove this loop?


Loop is occurred
Linked List after removing loop 
40 15 12 10 4

3) How will you design a data structure for excel spreadsheets?

We can design an excel spreadsheets by using:

  • Two-dimensional array ( but it will take lots of space)
  • Sparse matrix
  • Map, etc.

4) Explain memory protection in OS.

Memory protection is a mechanism which controls the unauthorized access of memory in the computer. Memory protection prevents the unallocated memory access by a process. Memory address is first checked before used by a process, to see whether it is allocated address or not.

There are two registers LBR and UBR are used to implement memory protection.

5) What is Virtual Memory in OS?

Virtual Memory is memory management technique of Operating System. Virtual memory is an extra space provided to a program when a main memory does not have the sufficient space to execute a code. It temporarily transfers data from RAM to disk storage, which uses inactive memory of hard disk, which is termed as Virtual Memory.

6) Write an algorithm to insert an element into a sorted linked list?

Suppose the linked list is sorted in ascending order then following is the algorithm for the same. Let the input node is 13 and let assign as n

Suppose Input linked list is:

1) If given linked list is empty then assign the node as head and return it.

2) If value of the node n is less than value of head node, then insert the node at start and assign it as head.

3) In a loop, search the appropriate node after which the input node is to be inserted. To search the appropriate node start from head, keep moving until you reach a node x(Let?s suppose 15)whose value is greater than the input node. The node before the x will be the appropriate node(11).

4) Insert the node(13) after the appropriate node(11) found in step 3.

After insertion:

7) Find pair of elements whose sum equal to a given number?


Pair element found at position 0 and 4
 Pair element found at position 1 and 7
 Pair element found at position 2 and 5

Candidates can also be asked for following questions:

  1. If there is an array of number which contains numbers from 1 to n. If we replace 1 number with another. Find both number in O (N).
  2. If in a marriage function there are n people then arrange those people in two groups, such that each person know each other?
  3. Implement Snake and Ladder game and find the minimum number of moves required to reach from 1 to 100 in a given game, using Dynamic Programming.
  4. There are n houses in a city. All in a single row. We can colour a house with any one of three colours (R,G,B). Cost of colouring each house is given for each colour. No two neighbour house can have same colour. Print min cost to colour all house.
  5. If Given LinkedList and a number k. reverse LinkedList in a group of k.

HR Round

HR round will be the last round for the complete recruitment process. This will be an easy round as compare to all above rounds as in this round, interviewer just wants to interact with the candidate. In this round, interviewer will judge the candidate on the basis of communication skills and soft skills.

1) Brief about yourself?

This question is a very common question and asked mostly in most of the interviews. Answer of this question should be in the following way.

Good morning/afternoon/evening, sir/mam, it's my pleasure to have this opportunity for introducing myself. My name is Anamika Singh, and I belong to Udaipur. I have completed my B. Tech in CSE branch from Noida Institute of Engineering & technology, and I did my schooling from Saint John Inter College.

If I talk about my family member, so there are 5 members in my family including me. My father is a Government teacher, my mother is a housewife, and I have a younger brother who has completed his higher secondary last month.

I am having a good knowledge of programming languages such as C, C++, and Java. I have also created some college-based project on these technologies.

I am very Confident, smart and adaptive person. I can adjust myself in any environment and can deal with any type of situation.

My hobbies are playing badminton, dancing, painting, and internet surfing.

Thank you.

2) Why do you want to join Adobe?

The interviewer asks this question to check if you are really interested to join or what is your motivation to join this company. You should answer this question in the following way:

Sir, Adobe is one of the great companies, which spread over world-wide. Everyone would love to work with Adobe. It's a great place to work. And my technical skills match with the company' requirement. I can show my technical skills to contribute for company's growth as well as my career growth.

3) What skills do you have, so that we should hire you?

By this question, interviewer wants to check, that how deep you know about your skills and how see yourself differently from others. Answer for this should be given as:

I have a good theoretical and practical knowledge of C, C++, Java, and Data structure. I have created various projects on these technologies. I can solve coding puzzles very efficiently in less time than others.

4) Which is your dream company?

By this question, the interviewer wants to check your passion. Is this company is your dream company, or you want to join this company as you don't have any other options. So candidate should answer this question carefully.

To answer this question candidate should never use any other company's name while they can choose the characteristics of the company.


My dream job is one, which works on innovation and which provides product to the world which can change the one's lifestyle. And I was excited about this job. As per my knowledge, Adobe is a company which beliefs on the innovation and creativity.

5) Tell something about your family background?

This is a general and relaxing question as you don't need to think so much to answer this. To answer this question, you need to tell how many members do you have, and what they do.


There are five members in my family including me. My father Mr. Jay Prakash is a Businessman, having a business of Electronics equipment. My mother Mrs. Sunita is a great homemaker. I have two Elder brothers, who are working in HCL technologies as software developers.

6) Where do you want to see yourself after ten years?


After ten years, I want to see myself on a respective position in this company where I can handle big responsibilities of the company. I want to learn on every level which will enhance my skills, and it will be helpful for the company growth.

7) What is your unique and different quality, which makes you the most suitable employee for this company?

This is the same question as "why should I hire you," Answer should be given as question number 3.

8) Do you think that you are a goal oriented person?

Yes, I am a goal-oriented person, I have some key goal of life which I want to achieve as early as I can. I regularly update my goal list that till the time what I Have achieved, and what is remaining yet.

9) What are your greatest strength and Weakness?

My greatest strength is my self-motivated nature. With the help of this, I can face any challenge.

My greatest weakness is my emotional nature. I get susceptible when I see someone in any adverse condition.