import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param tokens string字符串一维数组 * @return int整型 */ public int evalRPN (String[] tokens) { Stack<Integer> st = new Stack<>() ; for(int i = 0 ; i < tokens.length ; i ++) { String str = tokens[i] ; int cur = parse(str) ; if(cur == 201) { int b = st.pop() ; int a = st.pop() ; st.push(cal(a , str , b)) ; } else { st.push(cur) ; } } return st.pop() ; } /* 若str为数字字符串则转换为数字,否则返回201 */ public int parse(String str) { if(str.equals("+") || str.equals("-") || str.equals("*") || str.equals("/")) return 201 ; return Integer.parseInt(str) ; } /* 计算 a opt b */ public int cal(int a , String opt , int b) { switch(opt) { case "+":return a + b ; case "-":return a - b ; case "*":return a * b ; case "/":return a / b ; } return 0 ; } }