面試題 16 26 計算器 ( 模擬運算 )

2021-10-12 17:50:06 字數 1102 閱讀 5994

leetcode:面試題 16.26. 計算器

模擬運算題。

傳統做法使用兩個棧, 乙個操作符棧,乙個數棧, 然**棧 出棧就好。

雙端佇列模擬

**有點長。

class

solution

else

else

tmp = a;

} num.

add(tmp)

; oper.

add(cs[i]);

tmp =0;

}}num.

add(tmp)

;// 最後乙個有可能是 * | / 上面並沒有處理 if(

!oper.

isempty()

&&(oper.

peeklast()

=='*'

|| oper.

peeklast()

=='/'))

// 處理操作符 + - 順序要從左到右

// "1-1+1"

while

(!oper.

isempty()

)else

num.

addfirst

(a);

}return num.

peek();}}

利用棧簡潔點

class

solution

else

else

tmp =0;

c = cs[i];}

}if(c ==

'*')

else

if(c ==

'/')

else

while

(stack.

size()

>1)

return stack.

peek();}}

面試題 16 26 計算器 棧,表示式運算

表示式運算子優先順序演算法。定義運算子的優先順序 1 2代表前乙個和後乙個運算子。例如 在 後面,那麼 屬於2 22指示的那個維度。假設表示式的開頭和結尾有 1 2 x x 這個方法適用於所有的表示式。class solution case case case return res int tonu...

歷屆試題 小計算器 模擬

題意 傳送門 題解 模擬,對於清空操作,只有數字和運算清空了,但是進製卻沒有動,主要在於x進製轉為10進製,10進製轉為x進製,也是比較好寫的乙個模擬。include using namespace std long long dchange string s,int x if s 0 return...

藍橋杯 試題 歷屆試題 小計算器(模擬)

模擬程式型計算器,依次輸入指令,可能包含的指令有 1.數字 num x x為乙個只包含大寫字母和數字的字串,表示乙個當前進製的數 2.運算指令 add sub mul div mod 分別表示加減乘,除法取商,除法取餘 3.進製轉換指令 change k 將當前進製轉換為k進製 2 k 36 4.輸...