题解 | 逆波兰表达式求值

逆波兰表达式求值

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

#include <algorithm>
#include <stack>
#include <string>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param tokens string字符串vector 
     * @return int整型
     */
    int evalRPN(vector<string>& tokens) {
        // write code here
        stack<string> ss;
        if(tokens.size()==1)
            return stoi(tokens[0]);
        else
        {
            for(int i = 0;i <tokens.size();i++)
            {
                if(tokens[i]=="+" || tokens[i]=="-"||tokens[i]=="*"||tokens[i]=="/")
                {
                    int tmp2 = stoi(ss.top());
                    ss.pop();
                    int tmp1 = stoi(ss.top());
                    ss.pop();
                    if(tokens[i]=="+")
                    {
                        ss.push(to_string(tmp1+tmp2));
                    }
                    else if (tokens[i]=="-") {
                        ss.push(to_string(tmp1-tmp2));
                    }
                    else if (tokens[i]=="*") {
                        ss.push(to_string(tmp1*tmp2));
                    }
                    else if (tokens[i]=="/") {
                        ss.push(to_string(tmp1/tmp2));
                    }
                }
                else
                {
                    ss.push(tokens[i]);
                }
            }
            return stoi(ss.top());
        };
    }
};

全部评论

相关推荐

11-13 12:02
门头沟学院 Java
我要娶个什么名:好骂,好骂 别学计算机就行了
点赞 评论 收藏
分享
秋招投简历提醒助手:个人经验是,一般面二十场左右就会进入侃侃而谈阶段。我今年七月末的时候开始的第一次面试,都是很多不会,回复很慢。后面慢慢迭代,到九月中的时候基本上面啥说啥,很放松的状态
远程面试的尴尬瞬间
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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