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

牛的表达式计算器

https://www.nowcoder.com/practice/261e7f01438f414c92f59c0059d3a906

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param tokens string字符串一维数组
     * @return int整型
     */
    public int calculatePostfix (String[] tokens) {
        // write code here
        Stack<Integer> stack = new Stack<>(); // 创建一个整型栈对象

        // 遍历后缀表达式中的每个元素
        for (String token : tokens) {
            if (!token.equals("+") && !token.equals("-") && !token.equals("*") &&
                    !token.equals("/")) {
                // 如果当前元素不是运算符,将其转化为整型并压入栈中
                stack.push(Integer.parseInt(token));
            } else {
                int b = stack.pop(); // 弹出栈顶元素作为运算符的右操作数
                int a = stack.pop(); // 弹出栈顶元素作为运算符的左操作数
                int res;
                // 根据运算符进行相应的运算
                if (token.equals("+")) {
                    res = a + b;
                } else if (token.equals("-")) {
                    res = a - b;
                } else if (token.equals("*")) {
                    res = a * b;
                } else {
                    res = a / b;
                }
                // 将运算结果压入栈中
                stack.push(res);
            }
        }

        // 返回栈中最后剩下的元素,即计算后的结果
        return stack.pop();
    }
}

这段代码使用的编程语言是 Java。

此代码考察了以下知识点:

  1. 数据结构:使用了栈(Stack)来实现后缀表达式的计算。栈是一种具有后进先出(LIFO)特性的数据结构,用于存储和管理元素。
  2. 字符串处理:通过遍历字符串数组,对每个元素进行判断和操作,实现后缀表达式的计算。
  3. 条件语句:使用了条件语句(if-else)来确定当前元素是操作数还是运算符,并根据不同的运算符执行相应的操作。

代码的文字解释大纲:

  1. 导入必要的类:导入java.util.Stack类,以便使用栈数据结构。
  2. 定义类和方法:定义一个名为Solution的类,其中包含一个名为calculatePostfix的方法,用来计算后缀表达式的结果。
  3. 创建栈对象:在calculatePostfix方法中,创建一个整型栈对象stack,用于存储操作数和中间计算结果。
  4. 遍历后缀表达式:使用for-each循环遍历后缀表达式数组tokens中的每个元素。
  5. 判断操作数和运算符:对于每个元素,通过条件语句判断是否为操作数,如果是则将其转换为整型并将其压入栈stack中;如果是运算符,则从栈中弹出两个操作数,并执行相应的运算。
  6. 运算结果入栈:根据运算符执行对应的运算,并将运算结果压入栈stack中。
  7. 返回计算结果:在遍历结束后,栈中只剩下一个元素,即为最终的计算结果,将其弹出并返回。
全部评论

相关推荐

不愿透露姓名的神秘牛友
今天 15:46
点赞 评论 收藏
分享
zhiyog:哈哈哈,其实是津巴布韦币
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务