224 基本計算器

2021-10-10 13:32:35 字數 1022 閱讀 4741

題目描述:

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

字串表示式可以包含左括號 ( ,右括號 ),加號 + ,減號 -,非負整數和空格 。

示例 1:

輸入: 「1 + 1」

輸出: 2

示例 2:

輸入: " 2-1 + 2 "

輸出: 3

示例 3:

輸入: 「(1+(4+5+2)-3)+(6+8)」

輸出: 23

說明:

你可以假設所給定的表示式都是有效的。

請不要使用內建的庫函式 eval。

方法1:

主要思路:

(1)使用棧處理出現括號的情形,既出現左括號的時候,將當前的已經計算過的部分結果放入到棧,同時放入對應的符號標識,並重新將之前的儲存部分結果的變數置為0,相當於把括號裡面的內容作為新的字串進行處理;

(2)當出現右括號的時候,首先減之前的內容計算結束,然後將該括號對應之前計算的內容從棧中取出,將結果併入到當前結果中;

(3)至於出現數字字元,則轉換成對應的數字,當出現的字元是加號或減號時,將之前的數字根據其對應的符號併入到結果中,並更新符號標識變數和當前數字變數;

(4)當跳出迴圈時,需要將最後跳出迴圈時,結束的最後乙個可能的數字併入到結果中;

class

solution

else

if(ch==

'+')

else

if(ch==

'-')

else

if(ch==

'(')

else

if(ch==

')')

}return res+sign*cur_num;

//處理可能的最後乙個數字內容}}

;

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,將數字 不一定是個位數 獲取,...

224 基本計算器

224.基本計算器 困難 答案整理 加深記憶 便於複習!python eval 函式還沒完全看懂。給你乙個字串表示式 s 請你實現乙個基本計算器來計算並返回它的值。示例 1 輸入 s 1 1 輸出 2 示例 2 輸入 s 2 1 2 輸出 3 示例 3 輸入 s 1 4 5 2 3 6 8 輸出 2...