class Solution {
public:
int evalRPN(vector<string> &tokens) {
stack<int> stack;
int n = tokens.size();
for(int i = 0; i < n; ++i) {
int toPush = 0;
if(tokens[i] == "+" || tokens[i] == "-" || tokens[i] == "*" || tokens[i] == "/") {
int right = stack.top();
stack.pop();
int left = stack.top();
stack.pop();
switch(tokens[i][0]) {
case '+':
toPush = right + left;
break;
case '-':
toPush = left - right;
break;
case '*':
toPush = left * right;
break;
case '/':
toPush = left / right;
break;
}
} else {
toPush = atoi(tokens[i].c_str());
}
stack.push(toPush);
}
return stack.top();
}
};
4/13/2014
Leetcode -- Evaluate Reverse Polish Notation
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment