前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Evaluate Reverse Polish Notation

Evaluate Reverse Polish Notation

作者头像
用户1624346
发布2018-04-17 16:25:39
5090
发布2018-04-17 16:25:39
举报
文章被收录于专栏:calmoundcalmound

定义一个队栈,每次出现一个数放进栈中,若出现运算符的话,就将栈顶的两个元素出栈进行运算后在放入栈 考虑特殊情况 1.只有一个数字的时候 2.出现负数的情况

代码语言:javascript
复制
class Solution
{
public:
    int evalRPN(vector<string> &tokens)
    {
       // if(tokens.size()==1) return tokens[0];
        stack<int>S;
        for(int i=0; i<tokens.size(); i++)
        {
            if(!(tokens[i][0]>=0 && tokens[i][0]<=9))
            {
                if((tokens[i][0]>='0' && tokens[i][0]<='9'))
                {
                    int n;
                    sscanf(tokens[i],"%d",&n);
                    S.push(n);
                }
                else if(!(tokens[i][0]>='0' && tokens[i][0]<='9') && (tokens[i][1]>='0' && tokens[i][1]<='9'))
                {
                    int n;
                    sscanf(tokens[i],"%d",&n);
                    S.push(n);
                }
                else
                {
                    int n,m;
                    m=S.top();S.pop();
                    n=S.top();S.pop();
                    switch(tokens[i][0])
                    {
                    case '+':S.push(m+n);break;
                    case '-':S.push(n-m);break;
                    case '*':S.push(n*m);break;
                    case '/':S.push(n/m);break;
                    }
                }
            }
        }
        return S.top();
    }
};
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014-07-30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档