You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
763 B

2 years ago
package class31;
import java.util.Stack;
public class Problem_0150_EvaluateReversePolishNotation {
public static int evalRPN(String[] tokens) {
Stack<Integer> stack = new Stack<>();
for (String str : tokens) {
if (str.equals("+") || str.equals("-") || str.equals("*") || str.equals("/")) {
compute(stack, str);
} else {
stack.push(Integer.valueOf(str));
}
}
return stack.peek();
}
public static void compute(Stack<Integer> stack, String op) {
int num2 = stack.pop();
int num1 = stack.pop();
int ans = 0;
switch (op) {
case "+":
ans = num1 + num2;
break;
case "-":
ans = num1 - num2;
break;
case "*":
ans = num1 * num2;
break;
case "/":
ans = num1 / num2;
break;
}
stack.push(ans);
}
}