Given 一個string expression, 我們要去計算result of expression.
有三個題型:
最基本的計算機題型
1.是string裡面只有+-(), 沒有乘除. (See LC 224)
2.再來是有+-*/但沒有() (See LC 227)
3.最難版本是+-*/和()都有(See LC 772)
Note:
- 上面這些題型都可以假設沒有leading negative integers. For example, “-3+2” or “(-3+2)”
- 只要是有括號的題目, 我們都會再遇到右括號(close parentheses)的時候, 需要先計算括號內的res_in_paren再把這個res_in_paren和左括號(open parentheses)左邊的res做合併.
- 這是經典的string parsing 算法題, 我們都是用stack來破題, 時間複雜度是O(n), 因為我們算法只需要掃過一遍字串,空間複雜度是O(n) 因為我們用了stack.
Related Problems in LC:
224. Basic Calculator
227. Basic Calculator II
772. Basic Calculator III