I appeared for the Coupa AI Online Assessment yesterday. The total duration was 1 hour and the OA consisted of an aptitude section followed by 3 coding questions.
Sharing all the questions I remember so that it may help others preparing for Coupa.
Total Duration: 60 minutes
There were around 2 questions where 4 sentences were given:
1. ...
2. ...
3. ...
4. ...We had to arrange them in the correct logical/sequential order.
Given:
Z = 26
JET = 61Find the value of:
PLANE = ?This was based on alphabet positions:
A = 1
B = 2
...
Z = 26Two custom operators P and R were used.
Something similar to:
13 P 3 R 1 = 40
25 R 15 P 15 = 250Find:
12 P 15 R 20 = ?We had to identify what operations P and R represented.
There were around 2–3 questions based on a graph.
These involved interpreting values/percentages/comparisons from the given graph.
Statements were similar to:
Some doctors are teachers.
No doctor is an actor.
Some teachers are actors.We had to select the correct Venn diagram representing the statements.
A string/word was given.
The strength of the word was calculated using the alphabet positions of its characters.
For example:
ABCAlphabet positions:
A = 1
B = 2
C = 3Therefore:
[
Strength = \frac{1+2+3}{3}
]
So:
Strength("ABC") = 2This was a relatively straightforward string/math problem.
An array and an integer K were given.
One example I remember was approximately:
Array = [6, 9, 12, 16, 25]
K = 6The question involved determining the number/minimum number of deletions required based on divisibility by K.
I don't remember the complete wording of this question clearly enough to reproduce the exact operation, but the basic concept involved:
KIf anyone appeared for the same OA and remembers the exact statement, please add it in the comments.
A numeric string S, its length N, and an integer Y were given.
We had to split the string into the minimum number of contiguous parts such that the numeric value of every part was not greater than Y.
S = "1234"
Y = 4
N = 4The only valid partition is:
"1" | "2" | "3" | "4"because:
12 > 4
23 > 4
34 > 4Therefore:
Answer = 4S = "10101010101010"
Y = 100
N = 14A valid minimum partition is:
"10" | "10" | "10" | "10" | "10" | "10" | "10"Every substring has value:
10 <= 100while:
101 > 100Therefore:
Answer = 7This is very similar to:
LeetCode 2522 – Partition String Into Substrings With Values at Most K
The main difference was that the Coupa version appeared to allow 0 in the numeric string, so it seemed to be a modified version of LeetCode 2522.
The greedy idea is to keep adding digits to the current partition while its value remains <= Y.
If adding the next digit makes the value exceed Y, start a new partition.
The OA was quite time-constrained because we had only 1 hour for both aptitude and coding.
The aptitude section had 8 questions in 15 minutes, so there was very little time to spend on a single question.
The coding section had 3 questions in roughly 45 minutes.
From what I remember, the coding difficulty was:
Topics I would recommend revising for Coupa OA:
The closest identifiable LeetCode problem from my OA was:
LeetCode 2522 – Partition String Into Substrings With Values at Most K