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

牛的表达式计算器

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

相关推荐

03-02 08:18
集美大学 Java
钱嘛数字而已:没有赛事奖项么?另外,项目经历字有点多哈,建议突出一下重点:用的什么技术,解决什么问题,达到什么效果。
大家都开始春招面试了吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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