国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

[Leetcode] Evaluate Reverse Polish Notation 計(jì)算逆波蘭表

ephererid / 1772人閱讀

摘要:棧法復(fù)雜度時(shí)間空間思路逆波蘭表達(dá)式的計(jì)算十分方便,對(duì)于運(yùn)算符,其運(yùn)算的兩個(gè)數(shù)就是這個(gè)運(yùn)算符前面的兩個(gè)數(shù)。注意對(duì)于減法,先彈出的是減號(hào)后面的數(shù)。

Evaluate Reverse Polish Notation

Evaluate the value of an arithmetic expression in Reverse Polish Notation.

Valid operators are +, -, *, /. Each operand may be an integer or another expression.

Some examples:

  ["2", "1", "+", "3", "*"] -> ((2 + 1) * 3) -> 9
  ["4", "13", "5", "/", "+"] -> (4 + (13 / 5)) -> 6
棧法 復(fù)雜度

時(shí)間 O(N) 空間 O(N)

思路

逆波蘭表達(dá)式的計(jì)算十分方便,對(duì)于運(yùn)算符,其運(yùn)算的兩個(gè)數(shù)就是這個(gè)運(yùn)算符前面的兩個(gè)數(shù)。所以我們只要用一個(gè)棧,每次遇到數(shù)字就壓入棧內(nèi),每次遇到運(yùn)算符就彈出兩個(gè)數(shù),計(jì)算后再壓回棧內(nèi),最后棧內(nèi)剩下的那個(gè)數(shù)就是計(jì)算結(jié)果了。

注意

對(duì)于減法,先彈出的是減號(hào)后面的數(shù)。對(duì)于除法,先彈出的是除號(hào)后面的數(shù)。

代碼
public class Solution {
    public int evalRPN(String[] tokens) {
        Stack stk = new Stack();
        for(String token : tokens){
            switch(token){
                case "+":
                    stk.push(stk.pop() + stk.pop());
                    break;
                case "-":
                    stk.push(-stk.pop() + stk.pop());
                    break;
                case "/":
                    int num1 = stk.pop();
                    int num2 = stk.pop();
                    stk.push(num2 / num1);
                    break;
                case "*":
                    stk.push(stk.pop() * stk.pop());
                    break;
                default:
                    stk.push(Integer.parseInt(token));
            }
        }
        return stk.pop();
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/64626.html

相關(guān)文章

  • LeetCode 150:波蘭達(dá)式求值 Evaluate Reverse Polish Nota

    摘要:題目根據(jù)逆波蘭表示法,求表達(dá)式的值。給定逆波蘭表達(dá)式總是有效的。逆波蘭表達(dá)式又叫做后綴表達(dá)式。解題思路可以看出逆波蘭表達(dá)式中的每一個(gè)運(yùn)算符屬于該運(yùn)算符前的兩個(gè)數(shù)字間的運(yùn)算。如如波蘭表達(dá)式則加號(hào)前兩個(gè)數(shù)字為。 題目: 根據(jù)逆波蘭表示法,求表達(dá)式的值。 有效的運(yùn)算符包括 +, -, *, / 。每個(gè)運(yùn)算對(duì)象可以是整數(shù),也可以是另一個(gè)逆波蘭表達(dá)式。 Evaluate the value of...

    Turbo 評(píng)論0 收藏0
  • LeetCode 之 JavaScript 解答第150題 —— 波蘭達(dá)式求值

    摘要:小鹿題目根據(jù)逆波蘭表示法,求表達(dá)式的值。給定逆波蘭表達(dá)式總是有效的。算法思路仔細(xì)觀察上述的逆波蘭表達(dá)式,可以發(fā)現(xiàn)一個(gè)規(guī)律就是每遇到一個(gè)操作符,就將操作符前的兩個(gè)操作數(shù)進(jìn)行運(yùn)算,將結(jié)果保存到原位置。 Time:2019/4/14Title: Evaluate Reverse Polish NotationDifficulty: MediumAuthor:小鹿 題目:Evaluate ...

    104828720 評(píng)論0 收藏0
  • 達(dá)式類(lèi)算法題小結(jié)

    摘要:將表達(dá)式轉(zhuǎn)換為逆波蘭式,然后求值轉(zhuǎn)換中綴表達(dá)式為逆波蘭式魯棒性檢測(cè),表達(dá)式中沒(méi)有操作數(shù)計(jì)算逆波蘭式值參考 表達(dá)式類(lèi)算法題小結(jié) [TOC] 聲明 文章均為本人技術(shù)筆記,轉(zhuǎn)載請(qǐng)注明出處:[1] https://segmentfault.com/u/yzwall[2] blog.csdn.net/j_dark/ 表達(dá)式分類(lèi) 根據(jù)運(yùn)算符與相關(guān)操作操作數(shù)的位置不同,將表達(dá)式分為前綴,中綴和后綴表...

    Heier 評(píng)論0 收藏0
  • leetcode150. Evaluate Reverse Polish Notation

    摘要:我們一般看到的數(shù)學(xué)表達(dá)式就是中綴表達(dá)式,也就是將符號(hào)放在兩個(gè)數(shù)字之間。后綴表達(dá)式也就是將運(yùn)算符放在相應(yīng)數(shù)字的后面。后綴表達(dá)式相當(dāng)于樹(shù)中的后序遍歷。通過(guò)獲得對(duì)應(yīng)位置的操作符。如果對(duì)應(yīng)的還是操作符,則繼續(xù)遞歸往前計(jì)算。 題目要求 Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid...

    bitkylin 評(píng)論0 收藏0
  • [LeetCode] 150. Evaluate Reverse Polish Notation

    Problem Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are +, -, *, /. Each operand may be an integer or another expression. Note: Division between two inte...

    KoreyLee 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<