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 ;
}
}