Basic Calculator

HardStringStack

Description

Given a string s representing a valid expression, implement a basic calculator to evaluate it. The expression may contain '(', ')', '+', '-', and non-negative integers. Return the result as an integer.

Examples

Input:s = "1 + 1"
Output:2
Explanation:

1 + 1 = 2.

Input:s = " 2-1 + 2 "
Output:3
Explanation:

Evaluating left to right: 2 - 1 = 1, then 1 + 2 = 3. Whitespace is ignored during parsing.

Input:s = "(1+(4+5+2)-3)+(6+8)"
Output:23
Explanation:

Inner parentheses first: (4+5+2) = 11, then (1+11-3) = 9, and (6+8) = 14. Finally 9 + 14 = 23.

Constraints

  • 1 ≤ s.length ≤ 3 × 10⁵
  • s consists of digits, '+', '-', '(', ')', and ' '.

Ready to solve this problem?

Practice solo or challenge other developers in a real-time coding battle!