#(1)無小括號
#(2)有小括號
import collections
class solution:
def calculate(self, s: str) -> int:
print(value(str,0)[0])
def value(str,i):#返回長度為2的陣列,返回計算結果和算到的位置
que=collections.deque()
pre=0 #收集數字
while i="0" and str[i]<="9": #收集數字
pre=pre*10+int(str[i])
i+=1
elif str[i]!="(": #遇到了+-*/
addnum(que,pre) #把之前的數字放進去
i+=1
pre=0
else: #遇到了(
bra=value(str,i+1) #遞迴
pre=bra[0] #返回計算得到的值
i=bra[1]+1 #返回算到的位置
addnum(que,pre)
return [getnum(que),i]
def addnum(que,num):
if que:
top=que.pop()
if top=="+" or top=="-":
else:
cur=int(que.pop())
if top=="*":
num=cur*num
else:
num=cur/num
def getnum(que):
res=0
add=true
while que:
cur=que.popleft()
if cur=="+":
add=true
elif cur=="-":
add=false
else:
num=int(cur)
if add:
res+=num
else:
res-=num
return res
提供乙個計算crc值的方法
直接上 1 using system 23 4class toolutils5 4344 45 資料data的crc計算原理 46 1.根據count遍歷位元組資料,進行步驟2和3,最終計算出的crc值即可原始資料的crc值 47 2.第 i offset 個位元組與crc高八位異或出乙個crc16...
乙個常見式子較劣的一些解法
題意 求 sum limits n i m m i 做法一保留 m 將 n 4 帶入 1 mm 2 mm 2 3 mm 3 4 mm 4 用秦九韶演算法整理 m 1 m m 2 m m 3 m 4 mm 從括號裡面向外算,n r 可以利用 n k k in 0,r 的係數轉移到 n 1 r 所以僅需...
棧模擬式子的計算
description 讀入乙個只包含 的非負整數計算表示式,計算該表示式的值。input 測試輸入包含若干測試用例,每個測試用例佔一行,每行不超過200個字元,整數和運算子之間用乙個空格分隔。沒有非法表示式。當一行中只有0時輸入結束,相應的結果不要輸出。output 對每個測試用例輸出1行,即該表...