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

牛的表达式计算器

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

考察的知识点:栈的基本操作、后缀表达式;

解答方法分析:

  1. 如果元素是一个操作符(“+”, “-”, “*”, “/”),则从栈st中弹出两个元素,分别表示操作数num2和num1。然后,根据操作符计算出结果并将结果压入栈st中。
  2. 如果元素是一个数字,则将其转换为整型并将其压入栈st中。
  3. 最后,返回结果。

所用编程语言:C++;

完整编程代码:↓

class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param tokens string字符串vector
     * @return int整型
     */
    int calculatePostfix(vector<string>& tokens) {
        stack<int> st;
        for (string token : tokens) {
            int res = 0;
            if (token == "+") {
                int num2 = st.top();
                st.pop();
                int num1 = st.top();
                st.pop();
                res = num1 + num2;
            } else if (token == "-") {
                int num2 = st.top();
                st.pop();
                int num1 = st.top();
                st.pop();
                res = num1 - num2;
            } else if (token == "*") {
                int num2 = st.top();
                st.pop();
                int num1 = st.top();
                st.pop();
                res = num1 * num2;
            } else if (token == "/") {
                int num2 = st.top();
                st.pop();
                int num1 = st.top();
                st.pop();
                res = num1 / num2;
            } else {
                res = stoi(token);
            }
            st.push(res);
        }
        return st.top();
    }
};

全部评论

相关推荐

否极泰来来来来:解约赔多少
点赞 评论 收藏
分享
09-17 20:37
已编辑
长沙学院 Java
涂莱:学院本重心后移,金10银11,甚至金11银12,战线拉长一点,对于学院本来说秋招是个持久战,加油吧
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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