-
Notifications
You must be signed in to change notification settings - Fork 0
/
1077.py
25 lines (25 loc) · 829 Bytes
/
1077.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
casos = int(input())
for caso_davez in range(casos):
entrada = input()
valores = {"(": 1, "+": 2, "-": 2, "*": 3, "/": 3, "^": 4}
resposta = []
pilha = []
for simbolo in entrada:
if simbolo in "()+-*/^":
if simbolo == "(":
pilha.append(simbolo)
elif simbolo == ")":
while pilha[-1] != "(":
resposta.append(pilha.pop())
pilha.pop()
else:
while True:
if len(pilha) == 0 or valores[simbolo] > valores[pilha[-1]]:
break
resposta.append(pilha.pop())
pilha.append(simbolo)
else:
resposta.append(simbolo)
while pilha:
resposta.append(pilha.pop())
print("".join(resposta))