Leetcode 224 基本計算器 C

2021-10-07 12:19:51 字數 839 閱讀 6127

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

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

示例 1:

輸入: "1 + 1"

輸出: 2

示例 2:
輸入: " 2-1 + 2 "

輸出: 3

示例 3:
輸入: "(1+(4+5+2)-3)+(6+8)"

輸出: 23

說明:利用棧

本題情況相對簡單,只需要考慮+、-、(、)情況,顯然(優先順序最大,)優先順序最低,+、-優先順序相同。因此,如果是(直接入符號棧;)則進行棧中符號的運算,同時彈出(;+、-則需要判定棧中是否為(,不是則進行運算。詳細過程見**

int

calculate

(string s)

else

if(s[i]

==')'

) fuhao.

pop();

i++;}

else

if(s[i]

=='+'

|| s[i]

=='-'

) fuhao.

push

(s[i]);

i++;}

else

conclude.

push

(x);}}

if(!fuhao.

empty()

)return conclude.

top();

}

leetcode 224 基本計算器

題目 基本計算器 實現乙個基本的計算器來計算乙個簡單的字串表示式的值。字串表示式可以包含左括號 右括號 加號 減號 非負整數和空格 示例1 輸入 1 1 輸出 2 示例2 輸入 2 1 2 輸出 3 示例3 輸入 1 4 5 2 3 6 8 輸出 23 說明 c include include cl...

leetcode 224 基本計算器

實現乙個基本的計算器來計算乙個簡單的字串表示式的值。字串表示式可以包含左括號 右括號 加號 減號 非負整數和空格 示例 1 輸入 1 1 輸出 2 示例 2 輸入 2 1 2 輸出 3 示例 3 輸入 1 4 5 2 3 6 8 輸出 23 採用雙棧法,設立乙個資料棧和乙個操作符棧,在遍歷字串的過程...

Leetcode 224基本計算器

邏輯先寫第三步再寫第二步,思考時要按照表示式順序先看數字再看右括號正常考慮,時間複雜度o n class solution intcalculate string s else 遇到數字 nums.push n 處理多位數等價寫法 while j s.size isdigit s j j j i c...