码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode[150] Evaluate Reverse Polish Notation

时间:2014-12-17 23:59:37      阅读:393      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   ar   io   color   os   sp   for   

逆波兰表示法,在维基百科here

一不小心就看到了维基上有说用栈处理。然后就用栈处理了。

需要注意的是,操作数前后不要弄错,stoi可以调用。它应该是在stdlib.h的头文件里,不过我在codeblock上试了不行。

class Solution {
public:
    int evalRPN(vector<string> &tokens) 
    {
        int size  = tokens.size();
        if (size == 0) return 0;
        stack<int> sta;
        for (int i = 0; i < size; i++)
        {
            if (isdigit(tokens[i][0]) || tokens[i].size() > 1)
                sta.push(stoi(tokens[i]));
            else
            {
                int op1 = sta.top();
                sta.pop();
                int op2 = sta.top();
                sta.pop();
                switch(tokens[i][0])
                {
                    case +:
                        sta.push(op1 + op2); break;
                    case -:
                        sta.push(op2 - op1); break;
                    case *:
                        sta.push(op1 * op2); break;
                    case /:
                        sta.push(op2 / op1); break;
                }
            }
        }
        return sta.top();
    }
};

如果自己实现stoi的话:

bubuko.com,布布扣
    int stoi150(string s)
    {
        int flag = 1;
        if (s[0] == -)
        {
            flag = -1;
            s = s.substr(1);
        }
        else if (s[0] == +)
        {
            s = s.substr(1);
        }

        int size = s.size(), ans = 0;
        for (int i = 0; i < size; i++)
        {
            ans = 10 * ans + (s[i] - 0);
        }
        return flag * ans;
    }
View Code

 

leetcode[150] Evaluate Reverse Polish Notation

标签:style   blog   http   ar   io   color   os   sp   for   

原文地址:http://www.cnblogs.com/higerzhang/p/4170704.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!