import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param tokens string字符串一维数组
     * @return int整型
     */
    public int calculatePostfix (String[] tokens) {
        // write code here
        Stack<String> stack = new Stack<>();
        for (int i = 0; i < tokens.length; i++) {
            if (tokens[i].equals("+")) {
                int value1 = Integer.parseInt(stack.pop());
                int value2 = Integer.parseInt(stack.pop());
                int result = value2 + value1;
                stack.add(String.valueOf(result));
            } else if (tokens[i].equals("-")) {
                int value1 = Integer.parseInt(stack.pop());
                int value2 = Integer.parseInt(stack.pop());
                int result = value2 - value1;
                stack.add(String.valueOf(result));
            } else if (tokens[i].equals("*")) {
                int value1 = Integer.parseInt(stack.pop());
                int value2 = Integer.parseInt(stack.pop());
                int result = value2 * value1;
                stack.add(String.valueOf(result));
            } else if (tokens[i].equals("/")) {
                int value1 = Integer.parseInt(stack.pop());
                int value2 = Integer.parseInt(stack.pop());
                int result = value2 / value1;
                stack.add(String.valueOf(result));
            } else {
                stack.add(tokens[i]);
            }
        }
        return Integer.parseInt(stack.peek());
    }
}

本题考察的是栈的应用,所用编程语言是java。遍历数组中的每个字符串

对于每个运算符,我们需要依次弹出两个栈顶元素,进行运算,运算结果压入栈中

对于每个数字,我们直接压入栈中

最后栈顶元素就是运算结果