题解 | #逆波兰表达式求值#

逆波兰表达式求值

https://www.nowcoder.com/practice/885c1db3e39040cbae5cdf59fb0e9382

#include <sstream>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param tokens string字符串vector 
     * @return int整型
     */
    int evalRPN(vector<string>& tokens) {
        // write code here
        vector<int> num;
        for(auto & token : tokens)
        {
            char c = token.back();
            switch (c) {
                case '+':
                num[num.size()-2] = num[num.size()-2] + num[num.size()-1];
                num.pop_back();
                break;
                case '-':
                num[num.size()-2] = num[num.size()-2] - num[num.size()-1];
                num.pop_back();
                break;
                case '*':
                num[num.size()-2] = num[num.size()-2] * num[num.size()-1];
                num.pop_back();
                break;
                case '/':
                num[num.size()-2] = num[num.size()-2] / num[num.size()-1];
                num.pop_back();
                break;
                default:
                {}
                int n;
                istringstream istr (token);
                istr >> n;
                num.push_back(n);
            }
        }
        return num[0];
    }
};

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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