← Back to blog Citadel SDE Intern OA 2026 Question Roundup | Three High-Frequency HackerRank Types + Timing Plan
Citadel

Citadel SDE Intern OA 2026 Question Roundup | Three High-Frequency HackerRank Types + Timing Plan

2026-05-24

Citadel / Citadel Securities 2026 SDE Intern OA remains one of the hardest-to-calibrate gates in quant recruiting: problems sit around LeetCode Medium, but scoring depends heavily on edge-case coverage and code efficiency — community pass rates stay under 25%. This guide walks through the platform, the three high-frequency question types, the timing plan, and the most common traps based on Spring 2026 recalls.

OA Platform and Pacing

Item Detail
Platform HackerRank
Problems 3–4 coding
Time 70 min (some streams 70 + 30 short answer)
Difficulty LC Medium → Medium-Hard
Languages Python / C++ / Java
Scoring Tiered test cases with hidden corner cases

Citadel's HackerRank instance uses auto-graders plus hidden test sets — it's common to see sample cases pass but the final score land at 60 because one hidden test catches an edge bug.

Three High-Frequency Question Types (Spring 2026)

Type 1: Order Book / Trading Simulation

Given an order stream (BUY / SELL / CANCEL), simulate matching and output each trade's price and the final position.

Key moves:

import heapq
from collections import defaultdict

def match_orders(orders):
    buy = []
    sell = []
    cancelled = set()
    trades = []
    
    for op, oid, side, price, qty in orders:
        if op == "CANCEL":
            cancelled.add(oid)
            continue
        if side == "BUY":
            while qty and sell:
                while sell and sell[0][2] in cancelled:
                    heapq.heappop(sell)
                if not sell or sell[0][0] > price:
                    break
                sp, sq, sid = heapq.heappop(sell)
                m = min(qty, sq)
                trades.append((oid, sid, sp, m))
                qty -= m
                if sq - m > 0:
                    heapq.heappush(sell, (sp, sq - m, sid))
            if qty:
                heapq.heappush(buy, (-price, qty, oid))
        else:
            while qty and buy:
                while buy and buy[0][2] in cancelled:
                    heapq.heappop(buy)
                if not buy or -buy[0][0] < price:
                    break
                bp, bq, bid = heapq.heappop(buy)
                m = min(qty, bq)
                trades.append((bid, oid, -bp, m))
                qty -= m
                if bq - m > 0:
                    heapq.heappush(buy, (bp, bq - m, bid))
            if qty:
                heapq.heappush(sell, (price, qty, oid))
    return trades

Time O(n log n) Space O(n)

Type 2: Greedy Simulation / Resource Allocation

Given tasks (start, duration, priority) and m workers, output how many tasks each worker completes.

Key moves:

import heapq

def allocate_tasks(tasks, m):
    tasks.sort(key=lambda t: (t[0], -t[2]))
    workers = [(0, i) for i in range(m)]
    heapq.heapify(workers)
    count = [0] * m
    
    for start, dur, _ in tasks:
        free_at, wid = heapq.heappop(workers)
        actual = max(free_at, start)
        heapq.heappush(workers, (actual + dur, wid))
        count[wid] += 1
    return count

Time O((n + m) log m)

Type 3: Bit Manipulation / Number Theory

Given an integer array a, return the sum of XOR over all subarrays mod 1e9+7.

Key moves:

MOD = 10**9 + 7

def sum_subarray_xor(a):
    ans = 0
    for b in range(30):
        ones = 0
        zeros = 1
        pref = 0
        contrib = 0
        for x in a:
            pref ^= (x >> b) & 1
            if pref == 1:
                contrib += zeros
                ones += 1
            else:
                contrib += ones
                zeros += 1
        ans = (ans + contrib * (1 << b)) % MOD
    return ans

Time O(n · 30)

70-Minute Pacing Plan

0–5 min      Read all 3 problems, rank by difficulty
5–25 min     Fully AC the easiest one
25–55 min    Attack the highest-confidence problem (with edge coverage)
55–65 min    Attempt the third, at minimum pass sample
65–70 min    Re-check every submission for syntax errors

Key: Citadel doesn't require a full AC sweep. Two complete > three half-finished.

Common Traps

Is Citadel the Same as Citadel Securities?

Two different OAs:

Item Citadel (HF) Citadel Securities (Market Maker)
Direction General SDE algorithms Quant / low-latency / bit ops
Time 70 min 90 min
Math share Low High (probability / expectation)
Platform HackerRank HackerRank

Applicants to Citadel Securities also need probability and expectation review.

What High Scorers Look Like

Among our students who scored 100 on Citadel OA, the shared pattern is two problems fully AC + the third passes sample at minimum. Our OA assistance starts with an ability assessment and then targets the weak topic for drilling.

For pricing and slots, ping WeChat Coding0201.


FAQ

What's the Citadel OA pass threshold?

Community recalls place it around 70–80 (out of 100). Top candidates land 90+ to reach phone screen.

Can I use ChatGPT during the OA?

No. HackerRank webcam + tab-tracking proctoring is active; suspected cheating leads to an immediate reject.

Will Python TLE?

Some problems (order book in particular) are tight in Python. Use C++ or PyPy — Citadel's HackerRank supports PyPy.

What's the post-OA flow?

OA pass → HR phone → 1–2 technical phones → Superday (3–5 onsite rounds). Superday pass rate ≈ 25%.


Preparing for Citadel, Jane Street, Two Sigma, HRT, or IMC OAs?

oavoservice continuously tracks OA and VO real questions across quant and HFT firms. Mentors come from front-line quant / SDE teams and offer typed drilling, order book and probability specials, and HackerRank pacing mocks in our OA assistance program.

👉 Add WeChat: Coding0201Get the Citadel OA prep package.


Contact

Email: [email protected]
Telegram: @OAVOProxy