實現乙個基本的計算器來計算乙個簡單的字串表示式的值。
字串表示式僅包含非負整數,+, - ,*,/ 四種運算子和空格 。 整數除法僅保留整數部分。
示例 1
:輸入:
"3+2*2"
輸出:7
示例 2
:輸入:
" 3/2 "
輸出:1
示例 3
:輸入:
" 3+5 / 2 "
輸出:5
說明:你可以假設所給定的表示式都是有效的。
請不要使用內建的庫函式 eval。
將減法轉化為加法(取相反數)
由於乘除法優先順序高,直接計算
整數不僅一位,會》10
表示式中沒有括號
注意:加減乘除空格的ascii碼都小於』0』,ascii對照表如下:
先做減法,避免int溢位
char型別,不能使用switch
class
solutionif(
(cur <
'0'&& cur !=
' ')
|| i == s.
length()
-1)// 記錄當前符號
sign = cur;
// 數字清零
num =0;
}}// 將棧內剩餘數字累加,即為結果
while
(!numstack.
isempty()
)return result;
}}
227 基本計算器 II
實現乙個基本的計算器來計算乙個簡單的字串表示式的值。字串表示式僅包含非負整數,四種運算子和空格。整數除法僅保留整數部分。示例 1 輸入 3 2 2 輸出 7示例 2 輸入 3 2 輸出 1示例 3 輸入 3 5 2 輸出 5說明 思路 我們用乙個棧來儲存數字,同時記錄數字之前出現的符號,該符號初始化...
227 基本計算器 II
給你乙個字串表示式 s 請你實現乙個基本計算器來計算並返回它的值。整數除法僅保留整數部分。示例 1 輸入 s 3 2 2 輸出 7 示例 2 輸入 s 3 2 輸出 1 示例 3 輸入 s 3 5 2 輸出 5 昨天的題有括號懶得寫字尾表示式,今天沒有括號啦,那就用把中綴轉成字尾算好了 首先建立乙個...
227 基本計算器 II
給你乙個字串表示式 s 請你實現乙個基本計算器來計算並返回它的值。整數除法僅保留整數部分。輸入 s 3 2 2 輸出 7輸入 s 3 2 輸出 1輸入 s 3 5 2 輸出 5棧,字串 利用正規表示式,首先對字串s利用正規表示式根據 乘,分開,然後 將字串s中的 乘,按順序取出,存放到另外乙個陣列,...