Google Interview Question

Implement a basic calculator that supports non-negative integers, +, -, *, / operators, open and closing parentheses, and empty spaces.