逆波兰表达式求解
思路
逆波兰表达式也是后缀表达式,遇数字存入栈,遇符号出栈两个数字运算。
只需判断String数组是数字还是符号,然后执行相应操作。
总结
无。
代码
public static int evalRPN(String[] tokens) {
Stack<Integer> stack=new Stack<>();
for (String s :tokens){
if ("+-*/".contains(s)) {
int t1=stack.pop();
int t2=stack.pop();
switch (s) {
case "+" -> stack.add(t1 + t2);
case "-" -> stack.add(t2 - t1);
case "*" -> stack.add(t1 * t2);
default -> stack.add(t2 / t1);
}
}else stack.push(Integer.valueOf(s));
}
return stack.pop();
}