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

Leetcode 之Evaluate Reverse Polish Notation(41)

时间:2016-05-28 15:38:08      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

很简单的一道题,定义一个栈保留操作数,遇操作符则弹出运算即可。

技术分享
bool isOperator(string &op)
      {
          //注意用法
          return op.size() == 1 && string("+-*/").find(op) != string::npos;
      }
      int evalRPN(vector<string> &tokens)
      {
          stack<string> s;
          for (auto token : tokens)
          {
              if (!isOperator(token))
              {
                  //如果是操作数,则入栈
                  s.push(token);
              }
              else
              {
                  //如果是操作符,则弹出操作数进行运算
                  int y = stoi(s.top());
                  s.pop();
                  int x = stoi(s.top());
                  s.pop();
                  if (token == "+")x += y;
                  if (token == "-")x -= y;
                  if (token == "*")x *= y;
                  if (token == "/")x /= y;
                  s.push(to_string(x));
              }
          }
          return stoi(s.top());
      }
View Code

 

Leetcode 之Evaluate Reverse Polish Notation(41)

标签:

原文地址:http://www.cnblogs.com/573177885qq/p/5537374.html

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