HomeBlog › Bloomberg Coding Interview Questions

Bloomberg Coding Interview Questions: Arrays, Strings & Design

Bloomberg over-indexes on arrays, strings, and a handful of classic design questions — and runs more phone screens than most. Five worked problems and the real bar.

Bloomberg hires a lot of engineers, and its interview reflects that volume: array and string problems, a few well-worn design questions (LRU cache being the most famous), and typically two or more phone screens before the onsite. The difficulty skews easy-to-medium, but the bar is consistency — clean code, correct edge cases, and clear communication on every problem.

This guide covers five representative Bloomberg problems with worked Python, the multi-screen loop, and the habits that turn a competent solution into a strong hire signal.

The full interview process

StageFormatNotes
Recruiter screen20-30 minBackground, team areas, logistics
Phone screen 145 min1-2 array/string problems, live coding
Phone screen 245 minHarder problem or a design question
Onsite coding (2-3)45-60 min eachDS&A plus an OOD/design problem
Behavioral30-45 minWhy Bloomberg, teamwork, communication
Team matchVariesPlacement into a specific engineering group

Problem 1: Two Sum (hash map)

Question: Given an array of integers and a target, return the indices of the two numbers that add up to the target.

The most-asked warm-up at Bloomberg phone screens. One pass with a hash map of value → index; for each number, check whether its complement has been seen.

def twoSum(nums, target):
    seen = {}
    for i, num in enumerate(nums):
        if target - num in seen:
            return [seen[target - num], i]
        seen[num] = i
    return []

Time O(n), space O(n). The junior answer is the O(n²) double loop; the one-pass hash map is what Bloomberg wants, and you should reach it immediately. State the complement insight out loud.

Problem 2: Valid Parentheses (stack)

Question: Given a string of '()[]{}' characters, determine if the brackets are validly matched and nested.

A stack problem: push opening brackets, and on a closing bracket verify it matches the most recent opening. Empty stack at the end means valid.

def isValid(s):
    pairs = {')': '(', ']': '[', '}': '{'}
    stack = []
    for ch in s:
        if ch in pairs:
            if not stack or stack.pop() != pairs[ch]:
                return False
        else:
            stack.append(ch)
    return not stack

Time O(n), space O(n). The edge cases Bloomberg checks: a closing bracket with an empty stack, and a non-empty stack at the end (unclosed brackets). Handle both explicitly.

Problem 3: LRU Cache (design)

Question: Design a Least-Recently-Used cache with O(1) get and put.

Bloomberg's signature design question — expect it. A hash map for O(1) lookup plus a doubly linked list for recency order. OrderedDict works, but be ready to build the linked list by hand.

from collections import OrderedDict
class LRUCache:
    def __init__(self, capacity):
        self.cache = OrderedDict()
        self.cap = capacity
    def get(self, key):
        if key not in self.cache:
            return -1
        self.cache.move_to_end(key)
        return self.cache[key]
    def put(self, key, value):
        if key in self.cache:
            self.cache.move_to_end(key)
        self.cache[key] = value
        if len(self.cache) > self.cap:
            self.cache.popitem(last=False)

Both operations O(1). Bloomberg interviewers very often ask you to implement the doubly linked list manually to test fundamentals — practice the sentinel-node version so you're not improvising pointer surgery live.

Problem 4: Merge Intervals (sorting)

Question: Given a collection of intervals, merge all overlapping intervals.

Sort by start time, then sweep: if the current interval overlaps the last merged one, extend it; otherwise append a new interval.

def merge(intervals):
    intervals.sort(key=lambda x: x[0])
    merged = []
    for start, end in intervals:
        if merged and start <= merged[-1][1]:
            merged[-1][1] = max(merged[-1][1], end)
        else:
            merged.append([start, end])
    return merged

Time O(n log n) dominated by the sort, space O(n). The subtle bug candidates hit: using merged[-1][1] = end instead of max(...), which breaks when a fully-contained interval follows. Always take the max.

Patterns Bloomberg asks most

PatternFrequencyNote
Arrays & strings~35% of loopsHigher share than most FAANG
Hash map / frequency~20%Two sum, anagrams, counting
Stack / queue~15%Parentheses, expression parsing
Design (LRU, iterators)~15%LRU cache appears very often
Linked lists~10%Reverse, detect cycle, merge
Trees / BFS-DFS~5%Less common than at FAANG

Common pitfalls specific to Bloomberg

A 4-week prep plan for a Bloomberg loop

  1. Week 1: Arrays, strings, and hashing — the bulk of Bloomberg's bank. Solve 20 easy-to-medium problems for speed and clean code.
  2. Week 2: Stacks, queues, linked lists, and the design questions — implement LRU cache from scratch until it's automatic.
  3. Week 3: Timed mixed sets to build consistency; the Bloomberg bar is reliability across many problems, not one hard solve.
  4. Week 4: Behavioral prep (why Bloomberg, teamwork) and a solo mock.

Keep every round consistent with live AI support

CoPilot Interview surfaces structured solutions in about 4 seconds during real Zoom and Teams calls. Free for Windows and macOS, invisible on screen-share.

Download free

FAQ

What kinds of questions does Bloomberg ask?

Mostly array, string, and hash-map problems at the easy-to-medium level, plus classic design questions - LRU cache shows up very often. The difficulty is moderate; the bar is consistency and clean edge-case handling across many problems.

How many phone screens does Bloomberg have?

Often two or more before the onsite, which is more than most companies. Treat each as a full round - they're not warm-ups.

Does Bloomberg really ask LRU cache that often?

Yes - it's the most reliably reported Bloomberg design question. Practice both the OrderedDict version and a from-scratch doubly-linked-list implementation, because interviewers frequently ask for the manual version.

Is Bloomberg's coding interview easier than FAANG?

The individual problems skew easier, but the volume of screens and the emphasis on consistent, bug-free code mean the overall bar is real. You need to be reliable, not just capable of one hard solve.

Can I use AI to prep for Bloomberg?

Yes. CoPilot Interview returns optimal solutions with Big-O so you can drill arrays, strings, and the LRU design until they're automatic. Follow Bloomberg's interview rules during the live round.