class Solution {
public:
int evalRPN(vector<string> &tokens) {
stack<int> numStack;
//for each token in the tokens
for(int i = 0; i < tokens.size(); ++i)
{
//if the token is operator
if(tokens[i] == "+" || tokens[i] == "-"
|| tokens[i] == "*" || tokens[i] == "/")
{
//push out two number in the numStack, compute result under current operator
int val2 = numStack.top();//...suppose valid notation
numStack.pop();
int val1 = numStack.top();//...suppose valid notation
numStack.pop();
int newNum = opFuns(val1, val2, tokens[i]);//...
numStack.push(newNum);
}
//if the token is number
else
{
numStack.push(stoi(tokens[i]));
}
}
//return the result
return numStack.top();
}
int opFuns(int a, int b, string op)
{
if(op == "+")
return a+b;
else if(op == "-")
return a-b;
else if(op == "*")
return a*b;
else
return a/b;
}
};[LeetCode]Evaluate Reverse Polish Notation,布布扣,bubuko.com
[LeetCode]Evaluate Reverse Polish Notation
原文:http://blog.csdn.net/sunbaigui/article/details/23391167