fork download
  1. def UcitajRecnik():
  2. d = {}
  3. u= input().split(";")
  4. for i in range(len(u)):
  5. d[u[i][0]] = [u[i][2], u[i][4], u[i][6]]
  6. return d
  7. def UcitajIzraz():
  8. iz = " ".join(input().split())
  9. print(iz)
  10. return iz
  11. def ObradiIzraz(izraz, d):
  12. lista = [x for x in izraz if x != " "]
  13. while(len(lista) > 1):
  14. s, poz = IzaberiOperator(lista, d)
  15. if(d[s][0] == '2'):
  16. lista[poz] = "(" + lista[poz-1] + " " + lista[poz] + " " + lista[poz+1] + ")"
  17. lista.pop(poz + 1)
  18. lista.pop(poz - 1)
  19. print(lista)
  20. elif(d[s][2] == 'D'):
  21. lista[poz] = "(" + lista[poz] + " " + lista[poz+1] + ")"
  22. lista.pop(poz+1)
  23. else:
  24. lista[poz] = "(" + lista[poz-1] + " " + lista[poz] + ")"
  25. lista.pop(poz-1)
  26. break
  27. def IzaberiOperator(lis, d):
  28.  
  29. return '+', 1
  30. dit = UcitajRecnik()
  31. print(dit.items())
  32. izraz = UcitajIzraz()
  33. ObradiIzraz(izraz, dit)
  34.  
  35.  
Success #stdin #stdout 0.11s 14108KB
stdin
+,2,1,L;-,2,1,L;*,2,2,L;/,2,2,L
a + b - c   * d /  e
stdout
dict_items([('+', ['2', '1', 'L']), ('-', ['2', '1', 'L']), ('*', ['2', '2', 'L']), ('/', ['2', '2', 'L'])])
a + b - c * d / e
['(a + b)', '-', 'c', '*', 'd', '/', 'e']