計算乙個式子的值

2021-09-17 01:22:17 字數 1159 閱讀 8056

#(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行,即該表...