Design a calculator with operator precedence
PremiumMachine codingMedium
- Operator precedence
- Shunting yard
- Recursive descent
Quick answer
This machine coding interview question asks you to design a calculator with operator precedence. Aim for a design that meets its requirements at the stated scale, then explain its main components, data flow and trade-offs. Interviewers want to see how you scope the problem, size it and defend each choice.
The problem
Build a calculator with operator precedence, like the expression engine in a phone calculator or a spreadsheet cell. It reads text such as 2 + 3 * (4 - 1) ^ 2, evaluates it by the usual math rules and reports clear errors. The hard parts are precedence, right-associative powers, unary minus and exact error positions.
What must a calculator with operator precedence do?
- Evaluate: evaluate(expr) returns a number, or throws a CalcError with a message and the 1-based column where the problem is.
- Operators: + - * / % ^, parentheses and unary minus. From lowest to highest: + -, then * / %, then unary minus, then ^.
How well must it do it?
- Correct by the rules: Results follow the stated precedence and associativity for every case in the test table.
- Single pass: Tokenize once and parse once; no repeated string replacement.
What scale should you design for?
Use these numbers in your estimates.
The scale numbers unlock with this questionUnlock
Key concepts
- Operator precedence
- Shunting yard
- Recursive descent
- Associativity
- Tokenizer
- AST evaluation
How you’ll practise
- Requirements
- Entities and interfaces
- Core implementation
- Edge cases and tests
- Extensions
- Wrap-up
Lala, personalized to you, gives a hint when you ask and reviews your design when you are ready.
What do interviewers look for?
In any machine coding design round.
- Clarifies the requirements before drawing anything
- Uses a few numbers that actually change the design
- Draws a clear path from the client to storage
- Picks storage and caching with reasons, not by habit
- Explains what breaks first under load and how to fix it
- States trade-offs openly instead of claiming a perfect design
Questions people ask about this interview question
- Which design type is this question?
- It is a machine coding question. You design a calculator with operator precedence and explain your choices the way you would in an interview.
- Is this question asked at entry level?
- It is marked Medium. Entry-level engineers can practise it, but it expects you to reason about requirements and trade-offs, not only list components.
- What should I cover first?
- Start with the requirements: what the system must do, how well it must do it and which numbers change the design. Agree on scope with the interviewer before you design anything.
- Can I practise it for free?
- It is a premium question. Sign up and unlock it once for 10 credits; it then stays unlocked. When you finish, Lala, your personalized AI mentor, can review your design for 30 credits.
Related questions
Updated · Written by the SevyDevy team