🌗 150. 逆波兰表达式求值
2022年6月20日
- algorithm
🌗 150. 逆波兰表达式求值
难度: 🌗
问题描述
解法
class Solution {
public int evalRPN(String[] tokens) {
// 思路:
// 借助 栈
LinkedList<Integer> stack = new LinkedList<>();
HashSet<String> set = new HashSet<>();
set.add("+");
set.add("-");
set.add("*");
set.add("/");
for(String str : tokens) {
if(set.contains(str)) {
// 这是一个运算符,需要进行计算
int b = stack.pop();
int a = stack.pop();
int res = 0;
if(str.equals("+")) {
res = a + b;
} else if(str.equals("-")) {
res = a - b;
} else if(str.equals("*")) {
res = a * b;
} else {
res = a / b;
}
stack.push(res);
} else {
// 这是一个数值
int cur = Integer.valueOf(str);
stack.push(cur);
}
}
return stack.peek();
}
}