Filter interviews by
Design a chat based solution for communication between users.
Implement real-time messaging functionality
Include features like group chats, file sharing, and message encryption
Design a user-friendly interface with customizable settings
Integrate with notification systems for instant updates
Ensure scalability and security of the platform
A vector class can be implemented using an array to store and manipulate a dynamic list of elements.
The class should have methods to add, remove, and access elements.
It should also have methods to resize the array as needed.
The class can be templated to allow for different data types.
Example: vector
Example: myVector.push_back(5);
Yes, a virtual destructor is used to ensure proper destruction of derived class objects.
A virtual destructor is declared with the virtual keyword in the base class.
It ensures that the destructor of the derived class is called before the base class destructor.
Without a virtual destructor, memory leaks and undefined behavior can occur.
Example: class Base { virtual ~Base() {} }; class Derived : public Base { ~Derived...
A constructor is a special method that is used to initialize objects of a class.
Constructors have the same name as the class they belong to.
They are called automatically when an object is created.
They can take parameters to initialize the object's state.
If a class does not have a constructor, a default one is provided.
Constructors can be overloaded to provide different ways of initializing objects.
What people are saying about Adobe
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.
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.
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
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
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
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.
I applied via Company Website and was interviewed before Jun 2023. There was 1 interview round.
3 DSA rounds based on trees, maps, dynamic programming on trees/ graphs and prepare well by practicing on GFG, leetcode and all.
I appeared for an interview before May 2023.
Code to find majority element
I applied via Walk-in and was interviewed in May 2021. There was 1 interview round.
A vector class can be implemented using an array to store and manipulate a dynamic list of elements.
The class should have methods to add, remove, and access elements.
It should also have methods to resize the array as needed.
The class can be templated to allow for different data types.
Example: vector
Example: myVector.push_back(5);
A constructor is a special method that is used to initialize objects of a class.
Constructors have the same name as the class they belong to.
They are called automatically when an object is created.
They can take parameters to initialize the object's state.
If a class does not have a constructor, a default one is provided.
Constructors can be overloaded to provide different ways of initializing objects.
Yes, a virtual destructor is used to ensure proper destruction of derived class objects.
A virtual destructor is declared with the virtual keyword in the base class.
It ensures that the destructor of the derived class is called before the base class destructor.
Without a virtual destructor, memory leaks and undefined behavior can occur.
Example: class Base { virtual ~Base() {} }; class Derived : public Base { ~Derived() {}...
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
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
Creating test cases for random scenarios ensures software reliability and robustness through diverse input validation.
Identify edge cases: Test with minimum and maximum input values, e.g., an empty array vs. a large array.
Use random data: Generate random inputs to simulate real-world usage, e.g., random user names or passwords.
Test invalid inputs: Ensure the system handles unexpected inputs gracefully, e.g., negative n...
posted on 16 Sep 2021
I appeared for an interview before Sep 2020.
Round duration - 50 minutes
Round difficulty - Easy
This was a Data Structural round.
Given a two-dimensional array/list consisting of integers 0s and 1s, where 1 represents land and 0 represents water, determine the number of distinct islands. A group of...
Count the number of distinct islands in a 2D array of 0s and 1s.
Identify islands by performing depth-first search (DFS) on the grid
Use a set to store the shape of each island and check for duplicates
Consider translations to determine distinct islands
Round duration - 50 minutes
Round difficulty - Easy
This was a Data Structural round.
You are tasked with arranging 'N' words of varying lengths such that each line contains at most 'M' characters, with each word separated by a space. The challenge is to minimiz...
The goal is to minimize the total cost of arranging 'N' words on each line with a maximum character limit 'M'.
Calculate the cost of each line as the cube of extra space characters needed to reach 'M'.
Minimize the total cost by arranging words to fit within the character limit on each line.
Ensure each word appears fully on one line without breaking across lines.
Round duration - 60 minutes
Round difficulty - Easy
This was a System Design round.
Design a system similar to Red Bus for handling bookings and onboarding vendors and customers.
Implement a user-friendly interface for customers to search and book tickets
Create a vendor portal for vendors to manage their offerings and availability
Include payment gateway integration for secure transactions
Develop a robust backend system for managing bookings, cancellations, and refunds
Utilize a database to store user in...
Round duration - 50 minutes
Round difficulty - Easy
This was a System Design round
Round duration - 50 minutes
Round difficulty - Easy
This was an HR round.
Tip 1 : Practice as much as you can.
Tip 2 : Prepare for company, not in general.
Tip 3 : Your past work should be objective and your contribution should be very clear
Tip 1 : Keep only relevant things for the job you are applying.
Tip 2 : Minimal data with measurable contribution and effect.
posted on 25 Jan 2023
I applied via Approached by Company and was interviewed before Jan 2022. There were 3 interview rounds.
Arrays, Graphs majorly asked
Practice Leetcode
Design a traffic signal system
Identify the number of lanes and intersections
Determine the traffic flow and peak hours
Choose appropriate sensors and controllers
Implement a synchronization algorithm
Consider emergency vehicle prioritization
Include pedestrian crossing signals
Ensure compliance with local regulations
Hashmap is a data structure that stores key-value pairs and provides constant time complexity for insertion, deletion, and retrieval.
Hashmap uses hashing function to map keys to indices in an array
Collisions can occur when multiple keys map to the same index, which can be resolved using separate chaining or open addressing
Java implementation: HashMap<String, Integer> map = new HashMap<>();
Printing patterns using code
Identify the pattern to be printed
Use loops to print the pattern
Adjust the loop variables to control the pattern
Use conditional statements to modify the pattern
Examples: printing stars, triangles, squares, etc.
Common point in linked list refers to the node where two or more linked lists intersect.
The common point can be found by traversing both linked lists and comparing the nodes.
The common point can also be found by using two pointers, one for each linked list, and moving them until they meet at the common point.
Examples include finding the intersection point of two linked lists or finding the loop in a linked list.
posted on 8 Apr 2021
Some of the top questions asked at the Adobe Software Engineer interview -
based on 3 interview experiences
Difficulty level
Duration
based on 42 reviews
Rating in categories
Computer Scientist
493
salaries
| ₹35 L/yr - ₹60.5 L/yr |
Technical Consultant
316
salaries
| ₹12.8 L/yr - ₹24 L/yr |
Computer Scientist 2
298
salaries
| ₹47.7 L/yr - ₹80 L/yr |
Software Engineer
283
salaries
| ₹13.4 L/yr - ₹25 L/yr |
Senior Software Engineer
244
salaries
| ₹22.9 L/yr - ₹42.8 L/yr |
Salesforce
Oracle
Microsoft Corporation
Amazon