Evaluate Reverse Polish Notation,evaluatenotation

來源:互聯網
上載者:User

Evaluate Reverse Polish Notation,evaluatenotation

原題連結:https://oj.leetcode.com/problems/evaluate-reverse-polish-notation/

題目大意:給出逆波蘭式,然後求其結果。

解題方法:單個棧

思路:遍曆逆波蘭式,若為數字,則入棧;若為操作符,則彈出棧頂的2個元素,然後將其對應該操作符的結果入棧。遍曆完成後,棧中元素就是所求結果。

時間複雜度:O(N)  空間複雜度 : O(1)

class Solution {public:    int evalRPN(vector<string> &tokens) {        if(tokens.empty())            return 0;        stack<int> s;        int op1=0,op2=0;        for(int i=0;i<tokens.size();i++)        {            if(tokens[i]=="+")            {                op2=s.top();s.pop();op1=s.top();s.pop();s.push(op1+op2);            }            else if(tokens[i]=="-")            {                op2=s.top();s.pop();op1=s.top();s.pop();s.push(op1-op2);            }            else if(tokens[i]=="*")            {                op2=s.top();s.pop();op1=s.top();s.pop();s.push(op1*op2);            }            else if(tokens[i]=="/")            {                op2=s.top();s.pop();op1=s.top();s.pop();s.push(op1/op2);            }            else                s.push(atoi(tokens[i].c_str()));        }        return s.top();    }};


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.