TÓPICO

W.A. 75% - Python

mdvieira1 perguntou 5 years ago

Olá senhores (as), já testei o código abaixo com todas as entradas disponíveis no problema e no uDebug, em todos obtive o resultado correto. Contudo ao submeter a questão recebo erro de 75%. Alguem sabe onde encontr-se me erro?

def prioridade(item):
    preced1 = ['+', '-']
    preced2 = ['/', '*']
    preced3 = ['^']

    if item in preced1:
        return 1
    elif item in preced2:
        return 2
    elif item in preced3:
        return 3
    else:
        return -1

ct = int(input())
sinais = ['+','-','*','/','^']
parenteses = ['(',')']

for expressao in range(ct):
    expre = input()
    saida = ''
    pilha = []

    for i in expre:
        if i not in sinais and i not in parenteses:
            saida += i
        elif i in sinais:
            if len(pilha) > 0:
                if ( prioridade(pilha[-1]) >= prioridade(i)):
                    saida += pilha.pop()
                    if len(pilha) > 1 and prioridade(pilha[-1]) == prioridade(i):
                        saida += pilha.pop()
                        pilha.append(i)
                    else:
                        pilha.append(i)
                else:
                    pilha.append(i)
            else:
                pilha.append(i)
        elif i == '(':
            pilha.append(i)
        elif i == ')':
            while pilha[-1] != '(':
                saida += pilha.pop()
            pilha.pop()
    while len(pilha) > 0:
        saida += pilha.pop()
    print(saida)

Este tópico ainda não foi respondido. Seja o primeiro!

Lembre de não publicar soluções. Sua publicação pode ser revisada por nossos moderadores.