首页 > 其他 > 详细

LeetCode OJ--Evaluate Reverse Polish Notation

时间:2014-02-15 06:52:53      阅读:291      评论:0      收藏:0      [点我收藏+]

http://oj.leetcode.com/problems/evaluate-reverse-polish-notation/

栈使用

bubuko.com,布布扣
#include <iostream>
#include <string>
#include <vector>
#include<stack>
using namespace std;

class Solution {
public:
    int toNum(string str)
    {
        int sum = 0;
        int i = 0;
        int flagPositiveOrNegative = 1;;
        if(str[0] == -)
        {
            flagPositiveOrNegative = -1;
            i = 1;
        }
        for( i;i<str.size();i++)
        {
            sum *= 10;
            sum += str[i] - 0;    
        }
        return sum * flagPositiveOrNegative;
    }
    int evalRPN(vector<string> &tokens) {
        if(tokens.size()==0)
            return 0;
        int i = 0;
        stack<int> myStack;
        while(i<tokens.size())
        {
            if(tokens[i] == "+" || tokens[i] == "-" || tokens[i]=="*" ||tokens[i] == "/" )
            {
                int num1 = myStack.top();
                myStack.pop();
                int num2 = myStack.top();
                myStack.pop();
                if(tokens[i] == "+")
                    myStack.push(num1+num2);
                if(tokens[i] == "-")
                    myStack.push(num2-num1);
                if(tokens[i] == "*")
                    myStack.push(num1*num2);
                if(tokens[i] == "/")
                    myStack.push(num2/num1);
            }
            else
            {
                myStack.push(toNum(tokens[i]));
            }
            i++;
        }
        return myStack.top();
    }
};

int main()
{ 
    Solution myS;
    vector<string> input;
    input.push_back("3");
    input.push_back("-4");
    input.push_back("+");
    cout<<myS.evalRPN(input);
    return 0;
}
bubuko.com,布布扣

LeetCode OJ--Evaluate Reverse Polish Notation

原文:http://www.cnblogs.com/qingcheng/p/3550032.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!