题解 | #牛的表达式计算器#
牛的表达式计算器
https://www.nowcoder.com/practice/261e7f01438f414c92f59c0059d3a906
所用知识
栈、字符串
所用语言
Java
解题思路
使用栈存数字 先用Character.isDigit()判断是否为数字
判断符号,并进行计算
把计算结果再次放入栈中,循环即可,最后栈顶即为结果
完整代码
// write code here
Stack<Integer> stack = new Stack<>();
int sum = 0;
for (String token:tokens) {
boolean flag = Character.isDigit(token.charAt(token.length()-1));
if(!flag){
if(token.equals("+")){
sum=stack.pop()+stack.pop();
stack.push(sum);
}
if(token.equals("-")){
int last =stack.pop();
sum=stack.pop()-last;
stack.push(sum);
}
if(token.equals("*")){
sum=stack.pop()*stack.pop();
stack.push(sum);
}
if(token.equals("/")){
int last =stack.pop();
sum=stack.pop()/last;
stack.push(sum);
}
}else {
stack.push(Integer.parseInt(token));
}
}
return stack.pop();
}
#牛的表达式计算器#