當前位置:成語大全網 - 書法字典 - 在python算法中,後綴表達式被轉換為前綴並進行求值。

在python算法中,後綴表達式被轉換為前綴並進行求值。

#確定操作員定義訂單的優先級(op1,op2):

order_dic = {'*':4,' $':5,'/':4,'+':3,'-':3} if op1 == '('或op2 == '(':返回False

elif op2 == ')':返回True

else:if order _ DIC[op 1]& lt;order_dic[op2]:返回False

else:返回Truedef infix2prefix(string):

前綴= ' '

stack = []

string_tmp = ' '

對於字符串中的s[::-1]:如果s == '(':

string_tmp += ')'

elif s == ')':

string_tmp += '('

否則:

string _ tmp+= s for s in string _ tmp:if s . is alpha():

prefix = s+prefix else:while len(stack)和o order(stack[-1],s):

op = stack.pop()

prefix = op+prefix if len(stack)= = 0或s!= ')':

stack.append否則:

stack.pop() if len(stack):

前綴=“”。join(stack)+prefix return prefix if _ _ name _ _ = ' _ _ main _ _ ':for string in[' A+B * C ','(A+B)*C ','((A-(B+C))* D)$(E+F)']:print string,' = = & gt',infix 2 prefix(string)12345678910112131415161718192021222324258

輸出

& gt& gt& gt

A+B*C == >+A *公元前

(A+B)*C == >*+ABC

((A-(b+ C))* D)$(E+F)= = & gt;$*-A+BCD+EF1234