隨筆-字尾表示式求和(巧妙解法)
阿新 • • 發佈:2018-12-19
題目:字尾表示式求和
思路:遇見數字直接出棧,遇見運算子號,用異常代替判斷。處理異常時出兩個元素,進行運算並將結果入棧;
import java.util.Stack; public class Solution { public int evalRPN(String[] tokens) { Stack<Integer> stack = new Stack<Integer>(); for(int i = 0;i<tokens.length;i++){ try{ int num = Integer.parseInt(tokens[i]); stack.add(num); }catch (Exception e) { int b = stack.pop(); int a = stack.pop(); stack.add(get(a, b, tokens[i])); } } return stack.pop(); } private int get(int a,int b,String operator){ switch (operator) { case "+": return a+b; case "-": return a-b; case "*": return a*b; case "/": return a/b; default: return 0; } } }