力扣 224 基本計算器 C

2021-10-21 17:32:24 字數 749 閱讀 7166

實現乙個基本的計算器來計算乙個簡單的字串表示式 s 的值。

class solution 

else

if(s[i]

=='+'

)else

if(s[i]

=='-'

)else

if(s[i]

=='('

)else

if(s[i]

==')'

)else

ret +

= sign * num;}}

return ret;}}

;

因為有括號所以導致運算時有先後順序,此時需要儲存之前的運算結果再運算後面的,所以需要用到棧結構

該方法將棧頂存的是運算子,在 pop 的時候彈出的是需要先算的,也就是括號裡面的.用到了遞迴的思想

while

(s[i]

>=

'0'&& s[i]

<=

'9')

這段**是為了運算多位數時迴圈逐位讀取,好比將字元 『290』轉成數字290,先解析2,再解析9時,將210+9=29;再解析0時,將2910+0=290;這樣,就完成了字元』290『到數字290的轉變.

- '0'
是因為該題目是字串形式的,在字串與整形運算時是用ascii 碼的數值運算的,所以要減掉』0』代表的 ascii 碼 48 才是真正的整型數字

224 基本計算器

實現乙個基本的計算器來計算乙個簡單的字串表示式的值。字串表示式可以包含左括號 右括號 加號 減號 非負整數和空格 示例 1 輸入 1 1 輸出 2 示例 2 輸入 2 1 2 輸出 3 示例 3 輸入 1 4 5 2 3 6 8 輸出 23 說明 你可以假設所給定的表示式都是有效的。請不要使用內建的...

224 基本計算器

題目描述 實現乙個基本的計算器來計算乙個簡單的字串表示式的值。字串表示式可以包含左括號 右括號 加號 減號 非負整數和空格 示例 1 輸入 1 1 輸出 2 示例 2 輸入 2 1 2 輸出 3 示例 3 輸入 1 4 5 2 3 6 8 輸出 23 說明 你可以假設所給定的表示式都是有效的。請不要...

224 基本計算器

leetcode題目 224.基本計算器 剛開始審題不認真,想用以前本科時期學習時用的棧 逆波蘭表示式。其實注意到了上面的幾個注意點就好寫了。解釋上述三點 定義兩個棧 因為棧是先進後出,因此需要倒序遍歷s。假設當前遍歷到s的pos位置,分為如下幾種情況 遇到數字0 9,將數字 不一定是個位數 獲取,...