Robinhood Software Engineer Onsite Coding Questions
7+ questions from real Robinhood Software Engineer Onsite Coding rounds, reported by candidates who interviewed there.
What does the Robinhood Onsite Coding round test?
The Robinhood onsite coding round is the core technical evaluation. Software Engineer candidates typically see 2-3 algorithm and data structure problems. Problems range from medium to hard difficulty, and interviewers evaluate both correctness and code quality.
Top Topics in This Round
Robinhood Software Engineer Onsite Coding Questions
I got the interview through a referral. Their questions were all the same ones I'd seen on forums and other sites, but I didn't pass because I felt I answered them quite well. The interviewers seemed
**Problem Statement** Exchanges only trade in whole shares, but the brokerage offers fractional shares to customers. The brokerage must manage an internal inventory to bridge this gap. The system must
Robinhood | VO | Staff
Codewriting Overview: Our goal is to build a simplified version of a real Robinhood system that reads prices from a stream and aggregates those prices into historical datapoints aka candlestick charts. We\u2019re...
For onsite, I was asked an algorithms question similar to this: Users can refer each other to Robinhood. We want keep track of who is responsible for the most referrals and...
#68 Text Justification
LeetCode #68: Text Justification. Difficulty: Hard. Topics: Array, String, Simulation. Asked at Robinhood in the last 6 months.
LeetCode #121: Best Time to Buy and Sell Stock. Difficulty: Easy. Topics: Array, Dynamic Programming. Asked at Robinhood in the last 6 months.
## Problem Given a list of words and a line width `W`, implement full text justification (like a word processor). Words on each line (except the last) must be spaced so the total line length equals exactly `W`. Spaces are distributed as evenly as possible; if uneven, extra spaces go to the leftmost gaps. The last line is left-justified with single spaces. ```python def full_justify(words: list[str], W: int) -> list[str]: pass ``` ## Example ``` Input: words = ["This", "is", "an", "example", "of", "text", "justification."] W = 16 Output: ["This is an", "example of text", "justification. "] ``` ## Follow-ups 1. How does your greedy line-breaking strategy perform vs. dynamic programming (Knuth-Plass)? 2. Extend to support RTL (right-to-left) text. 3. How would you handle words longer than `W`? 4. In a mobile layout context (variable-width fonts), how does the algorithm change?
See All 7 Questions from This Round
Full question text, answer context, and frequency data for subscribers.
Get Access