Betterworks goal configurations may contain arithmetic expressions that combine numeric targets, operators, and parentheses. Implement an evaluator that computes the integer result without using Python's eval or another expression-evaluation library.
Implement evaluate_expression(expression), where expression is a valid string containing non-negative integer operands, the binary operators +, -, *, and /, parentheses, and optional spaces. Return the expression's integer value. Multiplication and division have higher precedence than addition and subtraction. Parentheses override normal precedence. Division must truncate toward zero.
You may use a stack-based approach or equivalent pointer-based parsing logic. Inputs contain no unary operators, and division by zero does not occur.
def evaluate_expression(expression):