Bonami Software Pvt. Ltd interview experience Real time questions & tips from candidates to crack your interview

Trainee Technology

Bonami Software Pvt. Ltd
upvote
share-icon
4 rounds | 17 Coding problems

Interview preparation journey

expand-icon
Journey
I started doing coding in Java by taking course from coding ninjas in 2nd year. Before this I was exploring different programming like python, c++ , java. So I choose java. After completing the course i started practicing on geeksforgeeks and leetcode. After this in 3rd year I have made mini project. I have also taken inhouse training on ML.
Application story
I have applied through naukri.com . AFter applying my resume got shortlisted . After this a telephonic round conducted . After this I have to go for offline face 2 face interview.
Why selected/rejected for the role?
I was rejected in last round as I was not able to give optimised solution to the coding question they asked.
Preparation
Duration: 1 month
Topics: Data Structures, Pointers, OOPS, System Design, Algorithms, Dynamic Programming
Tip
Tip

Tip 1 - Practice Atleast 250 Questions
Tip 2 - Ex- Do atleast 2 projects
Tip 3 : Do practice on Codechef , Leetcode, gfg
Tip 4: practice past year questions

Application process
Where: Naukri
Eligibility: 7 CGPA
Resume Tip
Resume tip

Tip 1 : In the projects section, keep a maximum of 3 projects, but ensure that at least one of them is hosted/live that can be shown to the interviewer.
Tip 2: Do not put false things on resume

Interview rounds

01
Round
Medium
Online Coding Test
Duration60 minutes
Interview date12 Apr 2023
Coding problem4

4 coding problems were given to be solved with in 60 minutes

1. Josephus

Moderate
30m average time
70% success
0/80
Asked in companies
Goldman SachsWalmartAmazon

‘N’ people are standing in a circle numbered from ‘1’ to ‘N’ in clockwise order. First, the person numbered 1 will proceed in a clockwise direction and will skip K-1 persons including itself and will kill a Kth person. Now (K+1)th person from 1 will start and will kill the Kth person from itself.

You have to find the position of the last person surviving with respect to initial numbering.

Note:
A person can also kill himself.
Problem approach

The simple approach is to create a list and add all values from 1 to N to it. Create a recursive function that takes a list, start (position at which counting will start), and k ( number of people to be skipped) as an argument. If the size of the list is one i.e. only one person left then return this position. Otherwise, start counting the k person in a clockwise direction from starting position and remove the person at the kth position. Now the person at the kth position is removed and now counting will start from this position. This process continues till only one person is left

Try solving now

2. Subsequences of String

Moderate
15m average time
85% success
0/80
Asked in companies
Chegg Inc.Expedia GroupQuikr

You are given a string 'STR' containing lowercase English letters from a to z inclusive. Your task is to find all non-empty possible subsequences of 'STR'.

A Subsequence of a string is the one which is generated by deleting 0 or more letters from the string and keeping the rest of the letters in the same order.
Problem approach

One by one fix characters and recursively generate all subsets starting from them. After every recursive call, we remove the last character so that the next permutation can be generated.

Try solving now

3. Find Conflicting Meetings

Easy
15m average time
85% success
0/40
Asked in companies
WalmartRazorpayAmazon

Mr. X is a busy person. He has to attend 'N' meetings throughout the day. You are given the schedule of Mr. X in a 2D Matrix 'MEETINGS' having 'N' rows and 2 columns. The 'i'th element of the first column contains the starting time of the 'i'th meeting, and the 'i'th element of the second column contains the ending time of the 'i'th meeting.

Two meetings are conflicting with each other if they overlap each other for some non-zero time. If a meeting 'X' starts at the same time as the meeting 'Y' ends, then they do not conflict.

Given the schedule of the day of Mr. X. Find the index of any one conflicting meeting for each of the 'N' meetings.

In case a particular meeting does not conflict with any meeting, take -1 as the index of the conflicting meeting for that meeting.

Note :

If there are multiple conflicting meetings for a particular meeting. You can return any one of them.

Example :

Consider the matrix MEETINGS = [ [ 1, 3 ] , [ 4, 5 ] , [ 2, 5 ] ] 

The array containing the Conflicting Meetings will be [ 3, 3, 1 ].
Problem approach

A Simple Solution is to one by one process all appointments from the second appointment to last. For every appointment i, check if it conflicts with i-1, i-2, … 0. The time complexity of this method is O(n2). 
We can use Interval Tree to solve this problem in O(nLogn) time. Following is a detailed algorithm. 

Create an Interval Tree, initially with the first appointment.
Do following for all other appointments starting from the second one.
Check if the current appointment conflicts with any of the existing appointments in Interval Tree. If conflicts, then print the current appointment. This step can be done O(Logn) time.
Insert the current appointment in Interval Tree. This step also can be done O(Logn) time.

Try solving now

4. Two Sum

Easy
10m average time
90% success
0/40
Asked in companies
Chegg Inc.FacebookAmazon

You are given an array of integers 'ARR' of length 'N' and an integer Target. Your task is to return all pairs of elements such that they add up to Target.

Note:

We cannot use the element at a given index twice.

Follow Up:

Try to do this problem in O(N) time complexity. 
Problem approach

We take two pointers, one representing the first element and other representing the last element of the array, and then we add the values kept at both the pointers. If their sum is smaller than X then we shift the left pointer to right or if their sum is greater than X then we shift the right pointer to left, in order to get closer to the sum. We keep moving the pointers until we get the sum as X.

Try solving now
02
Round
Easy
Face to Face
Duration60 minutes
Interview date12 Apr 2023
Coding problem6

The interviewer was cool. He makes me comfortable and then ask questions from resume. Then he ask questions from dsa and gives coding problem to solve.

1. Trapping Rain Water

Moderate
15m average time
80% success
0/80
Asked in companies
RazorpayMorgan StanleyUber

You have been given a long type array/list 'arr’ of size 'n’.


It represents an elevation map wherein 'arr[i]’ denotes the elevation of the 'ith' bar.



Note :
The width of each bar is the same and is equal to 1.
Example:
Input: ‘n’ = 6, ‘arr’ = [3, 0, 0, 2, 0, 4].

Output: 10

Explanation: Refer to the image for better comprehension:

Alt Text

Note :
You don't need to print anything. It has already been taken care of. Just implement the given function.
Problem approach

Approach: In the previous solution, to find the highest bar on the left and right, array traversal is needed, which reduces the efficiency of the solution. To make this efficient, one must pre-compute the highest bar on the left and right of every bar in linear time. Then use these pre-computed values to find the amount of water in every array element.
Algorithm:
Create two arrays left and right of size n. create a variable max_ = INT_MIN.
Run one loop from start to end. In each iteration update max_ as max_ = max(max_, arr[i]) and also assign left[i] = max_
Update max_ = INT_MIN.
Run another loop from end to start. In each iteration update max_ as max_ = max(max_, arr[i]) and also assign right[i] = max_
Traverse the array from start to end.
The amount of water that will be stored in this column is min(a,b) – array[i],(where a = left[i] and b = right[i]) add this value to total amount of water stored
Print the total amount of water stored.

Try solving now

2. Missing Number

Moderate
30m average time
70% success
0/80
Asked in companies
HSBCSterlite Technologies LimitedSamsung

You are given an array/list ‘BINARYNUMS’ that consists of ‘N’ distinct strings which represent all integers from 0 to N in binary representation except one integer. This integer between 0 to ‘N’ whose binary representation is not present in list ‘BINARYNUMS’ is called ‘Missing Integer’.

Your task is to find the binary representation of that ‘Missing Integer’. You should return a string that represents this ‘Missing Integer’ in binary without leading zeros.

Note

1. There will be no leading zeros in any string in the list ‘BINARYNUMS’.

Example:

Consider N = 5 and the list ‘binaryNums’=  [“0”, “01”, “010”, “100”, “101”].  This list consists of the binary representation of numbers [0, 1, 2, 4, 5]. Clearly, the missing number is 3 and its binary representation will be “11”. So you should return string “11”.
Problem approach

Approach: 

Sort the input array.
Traverse the array and check for missing and repeating.

Try solving now

3. OOPS Questions

what do you understand by OOPS concept. Define 4 pillars of OOPS

4. OOPS Questions

Explain inheritance using examples.

5. DBMS Questions

What are joins and tell me the types of joins.

6. DS Question

What is hash table and tell me the load factor in hashtable ?

03
Round
Easy
HR Round
Duration30 minutes
Interview date12 Apr 2023
Coding problem1

It was a HR round.

1. Basic HR Questions

Are you comfortable in dealing with clients?

What if there is an conflict in your team, what you will do to resolve it?

Why Bonami?

Tell me about yourself.

04
Round
Easy
Face to Face
Duration30 minutes
Interview date12 Apr 2023
Coding problem6

It was a managerial + technical round

1. Longest Increasing Subsequence

Moderate
30m average time
65% success
0/80
Asked in companies
PhonePeChegg Inc.Barclays

For a given array with N elements, you need to find the length of the longest subsequence from the array such that all the elements of the subsequence are sorted in strictly increasing order.

Strictly Increasing Sequence is when each term in the sequence is larger than the preceding term.

For example:
[1, 2, 3, 4] is a strictly increasing array, while [2, 1, 4, 3] is not.
Problem approach

The simulation of approach will make things clear:

Input : arr[] = {3, 10, 2, 11}
LIS[] = {1, 1, 1, 1} (initially)
Iteration-wise simulation :

arr[2] > arr[1] {LIS[2] = max(LIS [2], LIS[1]+1)=2}
arr[3] < arr[1] {No change}
arr[3] < arr[2] {No change}
arr[4] > arr[1] {LIS[4] = max(LIS [4], LIS[1]+1)=2}
arr[4] > arr[2] {LIS[4] = max(LIS [4], LIS[2]+1)=3}
arr[4] > arr[3] {LIS[4] = max(LIS [4], LIS[3]+1)=3}

We can avoid recomputation of subproblems by using tabulation

Try solving now

2. DS Question

what are binary trees

3. HR Question

Do you have any other offer?

4. HR Question

Are you comfortable if we change your domain in programming?

5. HR Question

How will you deal with conflict with the clients?

6. HR Question

What qualities do you have that will benefit this company?

Here's your problem of the day

Solving this problem will increase your chance to get selected in this company

Skill covered: Programming

What is recursion?

Choose another skill to practice
Similar interview experiences
company logo
SDE - 1
3 rounds | 7 problems
Interviewed by OYO
4656 views
0 comments
0 upvotes
company logo
SDE - 1
3 rounds | 8 problems
Interviewed by Bonami Software Pvt. Ltd
839 views
0 comments
0 upvotes
company logo
SDE - 1
3 rounds | 9 problems
Interviewed by Salesforce
3451 views
0 comments
0 upvotes
company logo
SDE - 1
3 rounds | 5 problems
Interviewed by Bonami Software Pvt. Ltd
293 views
0 comments
0 upvotes
Companies with similar interview experiences
company logo
Trainee Technology
2 rounds | 4 problems
Interviewed by HCL Technologies
4853 views
0 comments
0 upvotes