g0101_0200.s0150_evaluate_reverse_polish_notation.Solution Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of leetcode-in-java21 Show documentation
Show all versions of leetcode-in-java21 Show documentation
Java-based LeetCode algorithm problem solutions, regularly updated
package g0101_0200.s0150_evaluate_reverse_polish_notation;
// #Medium #Top_Interview_Questions #Array #Math #Stack #Programming_Skills_II_Day_3
// #2022_06_24_Time_9_ms_(51.23%)_Space_44.1_MB_(56.86%)
import java.util.Stack;
@SuppressWarnings("java:S1149")
public class Solution {
public int evalRPN(String[] tokens) {
Stack st = new Stack<>();
for (String token : tokens) {
if (!Character.isDigit(token.charAt(token.length() - 1))) {
st.push(eval(st.pop(), st.pop(), token));
} else {
st.push(Integer.parseInt(token));
}
}
return st.pop();
}
private int eval(int second, int first, String operator) {
switch (operator) {
case "+":
return first + second;
case "-":
return first - second;
case "*":
return first * second;
default:
return first / second;
}
}
}