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

牛的表达式计算器

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

题目考察的知识点:栈是一种特殊的线性表,是限定仅在一端(通常是表尾),进行插入和删除操作的线性表。又称为后进先出(Last In First Out)的线性表,简称LIFO结构。

题目解答方法的文字分析:将数组中的数据入栈,如果遇到符号,则出数据并进行相加,再入数据,直到遍历完。

本题解析所用的编程语言:c++

int calculatePostfix(const vector<string>& tokens)
{
    // write code here
    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();
}

全部评论

相关推荐

SaviorSu:直接说下学期可以请假,一般情况学校允许我26届,大三就直接去实习了
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

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