题目
思路
看懂第一张图,基本就会发现,这就是将上一题中的消消乐环节,换成对应的计算。并且不用去考虑之前必须要考虑的if else(仅限消除的时候会用到)
两者都是通过栈来实现。
class Solution {
public int evalRPN(String[] tokens) {
Deque<Integer> deque = new LinkedList<>();
for (int i = 0; i < tokens.length; i++) {
if (tokens[i].equals("-")){
deque.push(-deque.pop()+deque.pop());
} else if(tokens[i].equals("/")){
int temp1 = deque.pop();
int temp2 = deque.pop();
deque.push(temp2/temp1);
}else if (tokens[i].equals("+")){
deque.push(deque.pop()+deque.pop());
} else if(tokens[i].equals("*")){
deque.push(deque.pop()*deque.pop());
}else { deque.push(Integer.valueOf(tokens[i]));}
}
return Integer.valueOf(deque.pop());
}
}