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。遍历数组中的每个字符串
对于每个运算符,我们需要依次弹出两个栈顶元素,进行运算,运算结果压入栈中
对于每个数字,我们直接压入栈中
最后栈顶元素就是运算结果

京公网安备 11010502036488号