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

牛的表达式计算器

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

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param tokens string字符串vector 
     * @return int整型
     */
    int calculatePostfix(vector<string>& tokens) {
        // 用到队列,从左往右,依次入队,遇到运算符,出队两个进行计算,再入队
        // 将数组中的数据入栈,如果遇到符号,则出数据并进行相加,再入数据,直到遍历完。
        stack<int> st;
        for(auto str:tokens){
            if(str=="+"||str=="-"||str=="*"||str=="/"){
                int right=st.top();
                st.pop();
                int left=st.top();
                st.pop();
                switch (str[0]) {
                    case '+':
                        st.push(left+right);
                        break;
                    case '-':
                        st.push(left-right);
                        break;
                    case '*':
                        st.push(left*right);
                        break;
                    case '/':
                        st.push(left/right);
                        break;
                }
            }
            else{
                st.push(stoi(str));
            }
        }
       return st.top();
    }
};

全部评论

相关推荐

Cherrycola01:0实习 0项目 约等于啥也没有啊 哥们儿这简历认真的吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务