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());//将最终结果转化为数字型变量 } }