题解 | #牛的表达式计算器#

牛的表达式计算器

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();
}
#牛的表达式计算器#
全部评论

相关推荐

简历求拷打,海投简历发过去就已读不回了求大佬们指点
程序员牛肉:基本不能了,估计你得放弃秋招,九月份找实习之后明年的春招开始正式找工作
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 11:29
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务