LeetCode-150- 逆波蘭表達(dá)式求值

題目描述:根據(jù) 逆波蘭表示法,求表達(dá)式的值。
有效的算符包括 +、-、*、/ 。每個(gè)運(yùn)算對(duì)象可以是整數(shù),也可以是另一個(gè)逆波蘭表達(dá)式。
整數(shù)除法只保留整數(shù)部分。
給定逆波蘭表達(dá)式總是有效的。換句話說,表達(dá)式總會(huì)得出有效數(shù)值且不存在除數(shù)為 0 的情況。
逆波蘭表達(dá)式:詳情介紹見
示例說明請(qǐng)見LeetCode官網(wǎng)。
來源:力扣(LeetCode) ??
鏈接:https://leetcode-cn.com/problems/evaluate-reverse-polish-notation/ ??
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
解法一:棧
利用棧后進(jìn)先出的特點(diǎn)來求解逆波蘭表達(dá)式(后綴表達(dá)式)的值,具體求解過程如下:
如果原表達(dá)式只有一個(gè)參數(shù),則直接返回操作數(shù)。
否則,聲明一個(gè)操作數(shù)棧nums用來存放操作數(shù),按順序遍歷逆波蘭表達(dá)式的字符:
如果當(dāng)前字符是操作數(shù),則直接入棧;
如果當(dāng)前字符是操作符,則從棧中取出2個(gè)操作數(shù),并按照當(dāng)前操作符進(jìn)行計(jì)算,將計(jì)算結(jié)果重新計(jì)算。
最后,返回操作數(shù)棧的唯一的一個(gè)值,即為逆波蘭表達(dá)式的求值結(jié)果。
【每日寄語】 世上無難事,只要肯登攀。