题解 | #牛牛与后缀表达式#

思路

考察递归,遇到操作数入栈,遇到运算符将栈顶前两个元素出栈运算,再将结果入栈,遍历完后栈顶元素即表达式结果

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 给定一个后缀表达式,返回它的结果
     * @param str string字符串 
     * @return long长整型
     */
    long long legalExp(string str) {
        // write code here
        stack<long long> st;
        long long tmp = 0;
        for(int i = 0;i < str.length();i++){
            if((str[i] >= '0')&&(str[i] <= '9')){    //若为数字字符,转数字
                tmp = tmp*10 + (str[i] - '0');
                continue;
            }
            else if(str[i] == '#'){    //若为#,说明操作数加载完成,入栈
                st.push(tmp);
                tmp = 0;
                continue;
            }
            else{    //若为运算符,取栈顶前两个元素作运算,结果再入栈
                long long Right = st.top(),Left;
                st.pop(); Left = st.top(); st.pop();
                if(str[i] == '+') st.push(Left + Right);
                if(str[i] == '-') st.push(Left - Right);
                if(str[i] == '*') st.push(Left * Right);
            }
        }
        return st.top();
    }
};

全部评论

相关推荐

叶扰云倾:进度更新,现在阿里云面完3面了,感觉3面答得还行,基本都答上了,自己熟悉的地方也说的比较细致,但感觉面试官有点心不在焉不知道是不是不想要我了,求阿里收留,我直接秒到岗当阿里孝子,学校那边的房子都退租了,下学期都不回学校,全职猛猛实习半年。这种条件还不诱人吗难道 然后现在约到了字节的一面和淘天的复活赛,外加猿辅导。华为笔试完没动静。 美团那边之前投了个base广州的,把我流程卡麻了,应该是不怎么招人,我直接简历挂了,现在进了一个正常的后端流程,还在筛选,不知道还有没有hc。
点赞 评论 收藏
分享
nus2201602...:兄弟,你这个简历撕了丢了吧,就是一坨,去找几个项目,理解项目流程,看几遍就是你的了,看看八股就去干了,多看看牛客里别人发出来的简历,对着写,你这写的啥啊,纯一坨
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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