![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 public class Solution {
2 public int evalRPN(String[] tokens) {
3 String operations ="+-*/";
4 Stack<String> stack = new Stack<String>();
5 for(String s:tokens){
6 if(!operations.contains(s)){
7 stack.push(s);
8 }
9 else{
10 int d1 = Integer.valueOf(stack.pop());
11 int d2 = Integer.valueOf(stack.pop());
12 int i = operations.indexOf(s);
13 switch(i){
14 case 0: stack.push(String.valueOf(d1+d2)); break;
15 case 1: stack.push(String.valueOf(d2-d1)); break;
16 case 2: stack.push(String.valueOf(d1*d2));break;
17 case 3: stack.push(String.valueOf(d2/d1));break;
18 }
19 }
20 }
21 return Integer.valueOf(stack.pop());
22 }
23 }
View Code
["2", "1", "+", "3", "*"] -> ((2 + 1) * 3) -> 9
["4", "13", "5", "/", "+"] -> (4 + (13 / 5)) -> 6