(劍指offer)面試題150 逆波蘭表示式求值

2021-10-08 03:21:20 字數 502 閱讀 9779

根據 逆波蘭表示法,求表示式的值。

有效的運算子包括 +, -, *, / 。每個運算物件可以是整數,也可以是另乙個逆波蘭表示式。

說明:整數除法只保留整數部分。

給定逆波蘭表示式總是有效的。換句話說,表示式總會得出有效數值且不存在除數為 0 的情況。

1、首先構造乙個運算子棧,此運算子在棧內遵循越往棧頂優先順序越高的原則。

2、讀入乙個逆波蘭表示式,從左至右掃瞄該算術表示式,從第乙個字元開始判斷,如果該字元是數字,則直接壓入棧中;如果是運算子,則彈出棧頂的兩個元素,使用運算子進行計算,將計算結果壓入棧中。

3、直至掃瞄完整個簡單算術表示式,確定所有字元都得到正確處理,棧中的數字即為計算結果。

public

static

intevalrpn

(string[

] tokens)

}return stringstack.

pop();

}

劍指offer面試題7

面試題7 用兩個棧實現佇列 using namespace std template class cqueue 預備知識 佇列 佇列也是一種常見的資料結構 特點是先進先出 fifo 在stl中有stack和queue兩個容器 template class stack 成員函式 empty size ...

劍指offer面試題11

面試題1 數值的整數的次方 題目 實現函式double power double base,int exponent 求base的 exponent次方。不得使用庫函式,同時不需要考慮大數問題。思路 首先應該明確指數的可能取值 正整數,0,負整數 另外還需要考慮底數是0的情形。對於負整指數,我們可以...

劍指offer面試題15

面試題15 鍊錶中倒數第k個結點 題目 輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。為了符合大多數人的習慣,本題從1開始計數,即鍊錶的尾結點是倒數第乙個結點。例如乙個鍊錶有6個結點,從頭結點開始它們的值依次是1 2 3 4 5 6。這個鍊錶的倒數第3個結點是值為4的結點。預備知識 鍊錶結點的定義如下 ...