def rpn(s):
lex=parse(s)
s2=[]
r=[]
oper=["+","-","*","/","(",")"]
for a in lex:
if a=="(":
s2=[a]+s2
elif a in oper:
if s2==[]:
s2=[a]
elif a==")":
while(True):
q=s2[0]
s2=s2[1:]
if q=="(":
break
r+=[q]
elif prty(s2[0]) < prty(a):
s2=[a]+s2
else:
while(True):
if s2==[]:
break
q=s2[0]
r+=[q]
s2=s2[1:]
if prty(q)==prty(a):
break
s2=[a]+s2
else:
r+=[a]
while(s2 != []):
q=s2[0]
r+=[q]
s2=s2[1:]
return r
def prty(o):
if o=="+" or o=="-":
return 1
elif o=="*" or o=="/":
return 2
elif o=="(":
return 0
def parse(s):
delims=["+","-","*","/","(",")"]
lex=[]
tmp=""
for a in s:
if a != " ":
if a in delims:
if tmp != "":
lex+=[tmp]
lex+=[a]
tmp=""
else:
tmp+=a
if tmp != "":
lex+=[tmp]
return lex
print(rpn("2+44*(56-12)/a-66"))
ZGVmIHJwbihzKToKCWxleD1wYXJzZShzKQoJczI9W10KCXI9W10KCW9wZXI9WyIrIiwiLSIsIioiLCIvIiwiKCIsIikiXQoJZm9yIGEgaW4gbGV4OgoJCWlmIGE9PSIoIjoKCQkJczI9W2FdK3MyCgkJZWxpZiBhIGluIG9wZXI6CgkJCWlmIHMyPT1bXToKCQkJCXMyPVthXQoJCQllbGlmIGE9PSIpIjoKCQkJCXdoaWxlKFRydWUpOgoJCQkJCXE9czJbMF0KCQkJCQlzMj1zMlsxOl0KCQkJCQlpZiBxPT0iKCI6CgkJCQkJCWJyZWFrCgkJCQkJcis9W3FdCgkJCWVsaWYgcHJ0eShzMlswXSkgPCBwcnR5KGEpOgoJCQkJczI9W2FdK3MyCgkJCWVsc2U6CgkJCQl3aGlsZShUcnVlKToKCQkJCQlpZiBzMj09W106CgkJCQkJCWJyZWFrCgkJCQkJcT1zMlswXQoJCQkJCXIrPVtxXQoJCQkJCXMyPXMyWzE6XQoJCQkJCWlmIHBydHkocSk9PXBydHkoYSk6CgkJCQkJCWJyZWFrCgkJCQlzMj1bYV0rczIKCQllbHNlOgoJCQlyKz1bYV0KCXdoaWxlKHMyICE9IFtdKToKCQlxPXMyWzBdCgkJcis9W3FdCgkJczI9czJbMTpdCglyZXR1cm4gcgoKZGVmIHBydHkobyk6CglpZiBvPT0iKyIgb3Igbz09Ii0iOgoJCXJldHVybiAxCgllbGlmIG89PSIqIiBvciBvPT0iLyI6CgkJcmV0dXJuIDIKCWVsaWYgbz09IigiOgoJCXJldHVybiAwCgpkZWYgcGFyc2Uocyk6CglkZWxpbXM9WyIrIiwiLSIsIioiLCIvIiwiKCIsIikiXQoJbGV4PVtdCgl0bXA9IiIKCWZvciBhIGluIHM6CgkJaWYgYSAhPSAiICI6CgkJCWlmIGEgaW4gZGVsaW1zOgoJCQkJaWYgdG1wICE9ICIiOgoJCQkJCWxleCs9W3RtcF0KCQkJCWxleCs9W2FdCgkJCQl0bXA9IiIKCQkJZWxzZToKCQkJCXRtcCs9YQoJaWYgdG1wICE9ICIiOgoJCWxleCs9W3RtcF0KCXJldHVybiBsZXgKCQpwcmludChycG4oIjIrNDQqKDU2LTEyKS9hLTY2IikpCgoJ
['2', '44', '56', '12', '-', '*', 'a', '/', '+', '66', '-']