import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param tokens string字符串一维数组 
     * @return int整型
     */
    public int evalRPN (String[] tokens) {
        // write code here
        Stack<String>s = new Stack<>();
        for(String tok:tokens){//简化for循环
            if(!tok.equals("+")&&!tok.equals("-")&&!tok.equals("*")&&!tok.equals("/")){
                s.push(tok);//如果是数字就直接压入栈中
            }else{
                int val1 = Integer.parseInt(s.pop());//提出一个数字
                int val2 = Integer.parseInt(s.pop());//提出第二个数字
			  //parseInt()将字符型变量转化为数字型变量
			  //pop()是一个将栈顶数字弹出并进行返回的方法
                if(tok.equals("+")){
                    s.push(String.valueOf(val1+val2));
                }else if(tok.equals("-")){
                    s.push(String.valueOf(val2-val1));
                }else if(tok.equals("*")){
                    s.push(String.valueOf(val1*val2));
                }else{
                    s.push(String.valueOf(val2/val1));
                }//进行运算
            }
            
        }
        return Integer.parseInt(s.peek());//将最终结果转化为数字型变量
    }
}