227 基本計算器 II

2021-09-29 10:08:41 字數 805 閱讀 1004

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

字串表示式僅包含非負整數,+, - ,*,/ 四種運算子和空格 。 整數除法僅保留整數部分。

示例 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中的 乘,按順序取出,存放到另外乙個陣列,...