Earlier, I brushed up on the fact that someone said Verisk OA is more of an application scenario question, this time I did it myself, I really feel that the questions are more focused on "practicality", there is no very sick algorithm, but the details and boundaries of the requirements are very high. The whole set consists of multiple choice questions, SQL reporting questions and a programming question.
Topic 1: Big-O Notation
Question.
Big (O) notation... pick ONE option
- identifies the best algorithm to solve a problem.
- determines maximum size of problem that can be solved on a system
- is the lower bound of growth rate of an algorithm.
- is the upper bound of the growth rate of an algorithm.
- None of the above.
👉 The correct answer is the fourth: Big-O notation is an upper bound describing the growth rate of the algorithm (WORST CASE).
Topic 2: SQL Reports
Question.
A marketing company maintains a database to track its advertising campaigns and engagements. The task is to generate a report that includes the name of The task is to generate a report that includes the name of each active campaign, the total number of engagements, and the sum of views and clicks for engagements.
- Only active campaigns should be included (
is_active = 1) - Columns.
campaign_name | total_engagements | total_views_and_clicks - Sorted by
campaign_name ASC
Schema.
campaigns (id, name, is_active)
engagements (campaign_id, views, clicks)
SQL Solution:
SELECT
c.name AS campaign_name,
COUNT(e.campaign_id) AS total_engagements,
COALESCE(SUM(e.views + e.clicks), 0) AS total_views_and_clicks
FROM campaigns c
JOIN engagements e
ON c.id = e.campaign_id
WHERE c.is_active = 1
GROUP BY c.name
ORDER BY c.name ASC.
👉 Note the use of COALESCE Handle cases where there may be no engagement to avoid NULL.
Topic 3: Minimal Operations
Question.
For each word in a list, determine the minimum number of character replacements needed so that no two adjacent characters are the same.
Example.
words = ['add', 'book', 'break']
Output = [1, 1, 0]
Output = [1, 1, 0]
Idea:
Iterates through the string, noting a replacement operation when it encounters identical neighboring characters.
Since replacing a single character solves the pair of duplicates, it is sufficient to count the number of all neighboring identical pairs.
Python Solution:
python
def minimalOperations(words):
res = []
for word in words.
res = []: for word in words. count = 0
if word[i] == word[i-1].
count += 1
res.append(count)
return res
# Testing
print(minimalOperations(['add', 'book', 'break'])) # [1, 1, 0]
My Experience
- Verisk OA is more of a basics + practical skills test: complexity, SQL reporting, string processing.
- Timing suggests 2 minutes for multiple choice questions and more time for SQL/programming questions to test boundaries.
- Boundary conditions are important: empty strings, single characters, campaigns without engagement, etc. are all considered.
Programhelp Help you get OA
Programhelp team consists of 7 seniors from top IT colleges (Oxford, Princeton, Peking University, etc.), all of whom have backgrounds in top tier companies such as Amazon, Google, and Ali. We offer:
- OA Real question restoration and explanation
- No Trace Remote On-line Assists
- Real-time voice alerts + Debug tutorials
Whether it's Verisk or another major OA/VO, we have proven full-process assist solutions to help you play steadily despite the pressure of the clock.