問題描述
以字串的形式給定乙個表示式,表示式中包含一位的數字,加號運算子+,減(負)號運算子-以及括號(),輸出這個運算子按照四則運算規則運算之後的結果,假定所有給定的表示式都是規範的。
測試樣例
輸入: '- (3 + ( 9 - 1 ) )'
輸出: -11
參考**
class
solution
:def
calculatorhelper
(self, expression, index =0)
: result =
0 operation =
'+'while index <
len(expression)
: char = expression[index]
if char.isdigit():
if operation ==
'+':
result +=
int(char)
else
: result -=
int(char)
elif char in
('+'
,'-'):
operation = char
elif char ==
'(':
currentresult, index = self.calculatorhelper(expression, index +1)
if operation ==
'+':
result += currentresult
else
: result -= currentresult
elif char ==
')':
return
(result, index)
index +=
1return
(result, index)
defcalculator
(self, expression)
:return self.calculatorhelper(expression)[0
]# test program
expression =
'- (3 + ( 9 - 1 ) )'
print
(solution(
).calculator(expression)
)# -11
如何計算字串表示式
using system using system.codedom using system.codedom.piler using microsoft.csharp using system.reflection public class eval r n public object getval...
計算字串表示式的值
舉個簡單的例子,平常我們寫的數學表示式a b,就是一種中綴表示式,寫成字尾表示式就是ab 再舉乙個複雜的例子,中綴表示式 a b c a b e的逆波蘭式是ab c ab e 1 首先,需要分配1個棧,用於臨時儲存運算子,此運算子在棧內遵循越往棧頂優先順序越高的原則 2 從中綴式的左端開始逐個讀取字...
字串表示式計算C 程式設計
字串表示式計算c 程式設計 在程式設計應用程式過程中,有時需要字串表示式的值。如字串 23 56 102 100 36 24 8 6 結果 191。根據資料結構棧的應用介紹,通過把表示式由中序式轉換成後序式,再用棧來進行計算。如上述字串表示式 23 56 102 100 36 24 8 6 轉換為後...