思路:
- 如果是数字,则压栈
- 如果是操作符,则出栈两个操作数,将运算结果继续压栈
- 最终的栈中只会有一个数字,就是结果
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param tokens string字符串一维数组
* @return int整型
*/
public int calculatePostfix (String[] tokens) {
Stack<Integer> s = new Stack<>();
// write code here
for(String t : tokens){
if("+".equals(t)){
s.push(s.pop() + s.pop());
}else if("-".equals(t)){
Integer t2 = s.pop();
Integer t1 = s.pop();
s.push(t1 - t2);
}else if("*".equals(t)){
s.push(s.pop() * s.pop());
}else if("/".equals(t)){
Integer divide =s.pop();
Integer dividend = s.pop();
s.push(dividend / divide);
}else{
// 数字,压栈
s.push(Integer.parseInt(t));
}
}
return s.pop();
}
}



京公网安备 11010502036488号