根据逆波兰表示法,求表达式的值。
有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。
说明:
整数除法只保留整数部分。
给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/evaluate-reverse-polish-notation
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
链接:https://leetcode-cn.com/problems/evaluate-reverse-polish-notation
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
class Solution { public int evalRPN(String[] tokens) { Stack<Integer> stack = new Stack<>(); int len = tokens.length; int ans = 0; Integer op1, op2; ArrayList<String> list =new ArrayList<>(Arrays.asList("+","-","*","/")); for(int i = 0; i < len; i++){ if(list.contains(tokens[i])){ if(!stack.empty()){ op1 = stack.pop(); if(!stack.empty()){ op2 = stack.pop(); switch (tokens[i]){ case "+": stack.push(op1+op2); break; case "-": stack.push(op2-op1); break; case "*": stack.push(op2*op1); break; case "/": try{ stack.push(op2/op1); }catch (Exception e){ e.printStackTrace(); } } } } }else{ stack.push(Integer.valueOf(tokens[i])); } } return stack.pop(); } }