Evaluate the value of an arithmetic expression in Reverse Polish Notation.
valid operators Are + , -, * , /. Each operand is an integer or another expression.
Some Examples:
["2", "1", "+", "3", "*")--((2 + 1) (3)-9 ["4", "", "5", "/", "+"], 4 + (13/5))
Class Solution {public: int evalrpn (vector<string> &tokens) { stack<int> data; int i,len=tokens.size (); int op_data1,op_data2; for (i=0;i<len;i++) { if (tokens[i]!= "+" && tokens[i]!= "-" && tokens[i]!= "*" && tokens[i ]!= "/") Data.push (Atoi (Tokens[i].c_str ())); else{ op_data2=data.top (); Data.pop (); Op_data1=data.top (); Data.pop (); if (tokens[i]== "+") Data.push (OP_DATA1+OP_DATA2); if (tokens[i]== "-") Data.push (OP_DATA1-OP_DATA2); if (tokens[i]== "*") Data.push (OP_DATA1*OP_DATA2); if (tokens[i]== "/") Data.push (OP_DATA1/OP_DATA2); } } return Data.top (); }};
Evaluate Reverse Polish Notation