import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param tokens string字符串一维数组
* @return int整型
*/
public int evalRPN (String[] tokens) {
// write code here
Stack<Integer> stack = new Stack<>();
String cur;
int a; int b;
for(int i = 0; i < tokens.length; i++){
cur = tokens[i];
if((cur.charAt(0)>='0'&&cur.charAt(0)<='9')||cur.length()>1){
//若在0-9,说明是正数,长度大于零避免了负数的问题,满足条件说明是数字,入栈。
stack.push(Integer.parseInt(cur));
}else{
//栈顶元素是运算中的第二个数。
b = stack.pop();
a = stack.pop();
switch(cur){
case "+":
stack.push(add(a,b));
break;
case "-":
stack.push(minus(a,b));
break;
case "*":
stack.push(mult(a,b));
break;
case "/":
stack.push(divide(a,b));
break;
}
}
}
return stack.peek();
}
public int add(int a, int b){
return a+b;
}
public int minus(int a, int b){
return a-b;
}
public int mult(int a, int b){
return a*b;
}
public int divide(int a, int b){
return a/b;
}
}