實現乙個基本的計算器來計算乙個簡單的字串表示式的值。
字串表示式可以包含左括號 ( ,右括號 ),加號 + ,減號 -,非負整數和空格 。
示例 1:
輸入: 「1 + 1」
輸出: 2
示例 2:
輸入: " 2-1 + 2 "
輸出: 3
示例 3:
輸入: 「(1+(4+5+2)-3)+(6+8)」
輸出: 23
這道題中帶了括號,可以用字尾表示式實現。
詳情參見
鏈結1鏈結2
class
solution
list.
add(string.
valueof
(num));
}else
if(c==
'(') operator.
push
(c);
else
if(c==
')')
operator.
pop();
}else
operator.
push
(c);}}
while
(!operator.
isempty()
)//把剩下的操作符送進去
list.
add(string.
valueof
(operator.
pop())
);//以上是求字尾表示式
stack
nums=
newstack
<
>()
;for
(int i=
0;isize()
;i++)}
}return nums.
pop();
}}
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...