题解 | 牛牛与后缀表达式

牛牛与后缀表达式

https://www.nowcoder.com/practice/a1a4f178f6ff4188890e51da1cc8ce10

1.已知数字的输入格式为num#,所以可通过#来确定输入的数字。

2.由于所有的运算符都位于操作数之后,所以当遇到运算符时,将前面的两个数字进行对应的运算即可 。

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 给定一个后缀表达式,返回它的结果
     * @param str string字符串 
     * @return long长整型
     */
    long long legalExp(string str) {
        long ans = 0;
        long now =0;
        stack<long> nums;
        for(char i:str){
            if( i>='0' &&i<='9'){
                now = now*10 + (i-'0');
            }else if(i == '#'){
                nums.push(now);
                now = 0;
            }else{
                long x2 = nums.top();
                nums.pop();
                long x1 = nums.top();
                nums.pop();
                switch (i){
                    case '-':
                        
                        nums.push(x1-x2);
                        break;
                    case '+':
                        nums.push(x1+x2);
                        break;
                    case '*':
                        nums.push(x1*x2);
                        break;
                }

            }
        }
        ans = nums.top();
        return ans;
    }
};

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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