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
Public class solution {public int evalrpn (string [] tokens) {stack <string> Vals = new stack <string> (); stack <string> Ops = new stack <string> (); For (INT I = 0; I <tokens. length; I ++) {If (tokens [I]. equals ("+") | tokens [I]. equals ("-") | tokens [I]. equals ("*") | tokens [I]. equals ("/") {ops. push (tokens [I]); While (! Ops. Empty ()&&! Vals. empty () {string op = ops. pop (); string val = Vals. pop (); int d = integer. parseint (VAL); If (op. equals ("+") {d = integer. parseint (Vals. pop () + d;} else if (op. equals ("-") {d = integer. parseint (Vals. pop ()-D;} else if (op. equals ("*") {d = integer. parseint (Vals. pop () * D;} else if (op. equals ("/") {d = integer. parseint (Vals. pop ()/d;} new string (); Vals. push (string. valueof (d);} else {Vals. push (tokens [I]);} return integer. parseint (Vals. pop ());}}