Leetcode 150: Evaluate Reverse Polish Notation
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
1 public class Solution { 2 public int EvalRPN(string[] tokens) { 3 if (tokens.Length == 0) return 0; 4 5 var stack = new Stack<int>(); 6 7 foreach (var t in tokens) 8 { 9 if (t == "+") 10 { 11 var op1 = stack.Pop(); 12 var op2 = stack.Pop(); 13 14 stack.Push(op1 + op2); 15 } 16 else if (t == "-") 17 { 18 var op1 = stack.Pop(); 19 var op2 = stack.Pop(); 20 21 stack.Push(op2 - op1); 22 } 23 else if (t == "*") 24 { 25 var op1 = stack.Pop(); 26 var op2 = stack.Pop(); 27 28 stack.Push(op2 * op1); 29 } 30 else if (t == "/") 31 { 32 var op1 = stack.Pop(); 33 var op2 = stack.Pop(); 34 35 stack.Push(op2 / op1); 36 } 37 else 38 { 39 stack.Push(Int32.Parse(t)); 40 } 41 } 42 43 return stack.Pop(); 44 } 45 }

浙公网安备 33010602011771号