124. calculate arithmetic expression

JavaScriptAlgorithm

medium  - accepted / - tried

In 119. create a tokenizer, you are able to extract the tokens from a string with invalid spaces.

Now please calculate() the result of the string. You can use the tokenizer you wrote before.

calculate('1 * (20 -   300      ) ')// -280calculate('     1/0 ')// Infinity
  1. the input expression is syntactically valid, containing non-negative integers, +, -, *, /, (, ) and spaces
  2. Don't use eval()

Always try to find a better approach.