标签:
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
class Solution { public: int evalRPN(vector<string> &tokens) { if(tokens.empty())return INT_MIN; stack<int> sta; for(auto &tok :tokens) { if(tok!="+"&&tok!="-"&&tok!="*"&&tok!="/") { sta.push(atoi(tok.c_str())); } else { int right=sta.top(); sta.pop(); int left=sta.top(); sta.pop(); int res=0; switch(tok[0]) { case ‘+‘: res=left+right; break; case ‘-‘: res=left-right; break; case ‘*‘: res=left*right; break; case ‘/‘: res=left/right; break; defaut :break; } sta.push(res); } } return sta.top(); } };
leetcode[150]Evaluate Reverse Polish Notation
标签:
原文地址:http://www.cnblogs.com/Vae98Scilence/p/4280724.html