給你乙個字串表示式 s,請你實現乙個基本計算器來計算並返回它的值。
整數除法僅保留整數部分。
示例 1:
輸入:s = "3+2*2"
輸出:7
示例 2:
輸入:s = " 3/2 "
輸出:1
示例 3:
輸入:s = " 3+5 / 2 "
輸出:5
1 <= s.length <= 3 * 105
s 由整數和算符 ('+', '-', '*', '/') 組成,中間由一些空格隔開
s 表示乙個 有效表示式
表示式中的所有整數都是非負整數,且在範圍 [0, 231 - 1] 內
題目資料保證答案是乙個 32-bit 整數
運用棧的思想,將要算的數值依次壓入棧中,再對棧中的元素求和即可。
使用deque stack 物件,定義sign 存放字串中的每個字元。
對字串中的每個字元進行檢索,當等於數字時,若前符號是+
直接壓入棧頂,若為-
,壓入當前數字的負數,若為*
將棧頂彈出與當前數字相乘再壓入棧頂,負數同理。
class
solutionif(
!character.
isdigit
(s.charat
(i))
&&s.
charat
(i)!=
' '||i==n-1)
num =0;
sign = s.
charat
(i);}}
while
(!stack.
isempty()
)return ans;
}}
基本計算器
輸入表示式字串,以 表示結束,計算並輸出表示式值。運算元可以是正負整數或實數,操作符有 乘方 和 sin 正弦 cos 余弦 log 對數 ln 自然對數 等函式。inttransfer charc void push in stack char op s,vector string res,cha...
基本計算器
實現乙個基本的計算器來計算乙個簡單的字串表示式的值。字串表示式可以包含左括號 右括號 加號 減號 非負整數和空格 示例 1 示例2 示例 3 我的媽呀這個題提交了n次終於通過了。沒有想到特殊情況比如輸入是這種 33 或者 33 或者1 33 設定兩個棧,乙個資料棧儲存資料,乙個符號棧儲存符號。當符號...
基本計算器
描述 給你乙個字串表示式s,請你實現乙個基本計算器來計算並返回它的值。注意 不允許使用任何將字串作為數學表示式計算的內建函式,比如eval 1 s.length 3 105 s 由數字 和 組成 s 表示乙個有效的表示式 不能用作一元運算 例如,1 和 2 3 無效 可以用作一元運算 即 1 和 2...