Implement basic calculator
Company: Amazon
Role: Software Engineer
Category: Coding & Algorithms
Difficulty: medium
Interview Round: Take-home Project
##### Question
LeetCode 227. Basic Calculator II – implement an arithmetic expression evaluator supporting +, -, *, / and integer operands
https://leetcode.com/problems/basic-calculator-ii/description/
Quick Answer: This question evaluates skill in parsing and evaluating arithmetic expressions with integer operands and the operators +, -, *, and /, focusing on operator precedence and evaluation order within the Coding & Algorithms domain.
Given a string s representing a valid arithmetic expression containing non-negative integers, '+', '-', '*', '/', and spaces, compute its value. The expression contains no parentheses. Division between two integers should truncate toward zero. Return the evaluated integer result.
Constraints
- 1 <= len(s) <= 100000
- s contains only digits, '+', '-', '*', '/', and spaces
- The expression is valid and contains no parentheses
- Operands are non-negative integers (no unary plus/minus)
- Integer division truncates toward zero
- The final result fits in a 32-bit signed integer
Examples
Input: 3+2*2
Expected Output:
Input: 14 - 3*4 + 5 / 2
Expected Output:
Hints
- Scan the string once while tracking the current number and the previous operator.
- Use a 'last term' variable to handle * and / precedence without a stack.
- Apply the previous operator when you meet a new operator or reach the end.
- To truncate toward zero in Python, use int(a / b) for division.