题解 | 牛的表达式计算器
牛的表达式计算器
https://www.nowcoder.com/practice/261e7f01438f414c92f59c0059d3a906
- 后缀表达式非常简单。
import java.util.*;
public class Solution {
public int calculatePostfix (String[] tokens) {
Deque<Integer> nums = new ArrayDeque<>();
Set<Character> s = new HashSet<>();
s.add('+');
s.add('-');
s.add('*');
s.add('/');
for (int i = 0; i < tokens.length; ++i) {
if (s.contains(tokens[i].charAt(0))) {
final Integer b = nums.removeLast();
final Integer a = nums.removeLast();
switch (tokens[i].charAt(0)) {
case '+':
nums.addLast(a + b);
break;
case '-':
nums.addLast(a - b);
break;
case '*':
nums.addLast(a * b);
break;
case '/':
nums.addLast(a / b);
break;
}
} else {
nums.addLast(Integer.valueOf(tokens[i]));
}
}
return nums.getLast();
}
}
