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:
这个叫什么来着,好熟悉,逆波兰表达式???这个题目当然是极其简单的
1 class Solution { 2 public: 3 int Opr(int x,int y,string opr){ 4 if(opr=="+"){ 5 return x+y; 6 } 7 if(opr=="-"){ 8 return x-y; 9 } 10 if(opr=="/"){ 11 return x/y; 12 } 13 if(opr=="*"){ 14 return x*y; 15 } 16 } 17 int evalRPN(vector<string>& tokens) { 18 stack<int>Int; 19 int len=tokens.size(); 20 for(int i=0;i<len;i++){ 21 if(tokens[i]=="+"||tokens[i]=="-"||tokens[i]=="/"||tokens[i]=="*"){ 22 int x=Int.top();Int.pop(); 23 int y=Int.top();Int.pop(); 24 Int.push(Opr(y,x,tokens[i])); 25 }else{ 26 Int.push(atoi(tokens[i].c_str())); 27 } 28 } 29 return Int.top(); 30 } 31 };