首页 > 其他 > 详细

Evaluate Reverse Polish Notation

时间:2014-04-21 01:33:18      阅读:383      评论:0      收藏:0      [点我收藏+]

逆波兰式也就是后序算式,计算后序式的基本思想就是用栈,依次遍历数组,遇到数字,压栈,遇到符号,两次弹栈,将弹出的两个操作数做运算,运算后将结果再压栈,最后

在栈顶的就是要计算的结果。

bubuko.com,布布扣
class Solution {
public:
    int  Words(vector<string> &tokens) {
      stack<int>  st;
      for(int i=0;i<tokens.size();i++)
      {
          int num1=0,num2=0;
         switch(atoi(&tokens[i][0]))
         {

         case +:
            num1=st.top();
            st.pop();
            num2=st.top();
            st.pop();
            st.push(num1+num2);
            break;
         case -:
             num1=st.top();
            st.pop();
            num2=st.top();
            st.pop();
            st.push(num1-num2);
            break;
         case *:
             num1=st.top();
            st.pop();
            num2=st.top();
            st.pop();
            st.push(num1*num2);
            break;
         case /:
             num1=st.top();
            st.pop();
            num2=st.top();
            st.pop();
            st.push(num1/num2);
            break;
         default:

            st.push(atoi(&tokens[i][0]));
         }
      }
      return st.top();
    }
};
bubuko.com,布布扣

 

Evaluate Reverse Polish Notation,布布扣,bubuko.com

Evaluate Reverse Polish Notation

原文:http://www.cnblogs.com/ZhangYushuang/p/3677373.html

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