LeetCode-Evaluate Reverse Polish Notation

来源:互联网 发布:2016美国历月非农数据 编辑:程序博客网 时间:2024/06/06 01:37

Evaluate the value of an arithmetic expression in Reverse Polish Notation.

Valid operators are +-*/. Each operand may be an integer or another expression.

Some examples:

  ["2", "1", "+", "3", "*"] -> ((2 + 1) * 3) -> 9  ["4", "13", "5", "/", "+"] -> (4 + (13 / 5)) -> 6
Solution:

Code:

<span style="font-size:14px;">class Solution {public:    int evalRPN(vector<string> &tokens) {        const int length = tokens.size();        stack<int> stk;        for (int i = 0; i < length; ++i)            if (tokens[i] == "+" || tokens[i] == "-" || tokens[i] == "*" || tokens[i] == "/") {                int second = stk.top();                stk.pop();                int first = stk.top();                stk.pop();                if (tokens[i] == "+")                    stk.push(first+second);                else if (tokens[i] == "-")                    stk.push(first-second);                else if (tokens[i] == "*")                    stk.push(first*second);                else if (tokens[i] == "/")                    stk.push(first/second);            } else                stk.push(atoi(tokens[i].c_str()));        return stk.top();    }};</span>



0 0
原创粉丝点击