1. 程式人生 > >LeetCode:Evaluate Reverse Polish Notation

LeetCode:Evaluate Reverse Polish Notation

這題比較簡單,堆疊的應用,記得大學的時候學過。

以前學過覺得簡單,其實我覺得堆疊的這個應用還是很精妙的。

public class Solution {
    public int evalRPN(String[] tokens) {
		Stack<Integer> stack = new Stack<Integer>();
        for (String token : tokens) {
        	if (token.equals("+") || token.equals("-") || token.equals("*") || token.equals("/")) {
        		Integer s1 = stack.pop();
        		Integer s2 = stack.pop();
        		Integer result = 0;
        		if (token.equals("+")) {
        			result = s1 + s2;
        		} else if (token.equals("-")) {
        			result = s2 - s1;
        		} else if (token.equals("*")) {
        			result = s2 * s1;
        		} else if (token.equals("/")) {
        			result = s2 / s1;
        		}
        		stack.push(result);
        	} else {
        		stack.push(Integer.valueOf(token));
        	}
        }
        return stack.pop().intValue();
    }
}