6/18/2014

126. Evaluate Reverse Polish Notation

public class Solution {
    public int evalRPN(String[] tokens) {
        Stack<String> stack = new Stack<String> ();
       
        for (int i=0; i<tokens.length; i++) {
            if (tokens[i].equals("+")) {
                int val = Integer.parseInt(stack.pop()) + Integer.parseInt(stack.pop());
                stack.push(String.valueOf(val));
            } else if (tokens[i].equals("-")) {
                int v1 = Integer.parseInt(stack.pop());
                int v2 = Integer.parseInt(stack.pop());
                int val = v2-v1;
                stack.push(String.valueOf(val));
            } else if (tokens[i].equals("*")) {
                int val = Integer.parseInt(stack.pop()) * Integer.parseInt(stack.pop());
                stack.push(String.valueOf(val));
            } else if (tokens[i].equals("/")) {
                int v1 = Integer.parseInt(stack.pop());
                int v2 = Integer.parseInt(stack.pop());
                int val = v2/v1;
                stack.push(String.valueOf(val));
            } else stack.push(tokens[i]);
        }
       
        return Integer.parseInt(stack.pop());
    }
}

没有评论:

发表评论