Cod sursa(job #2875094)

Utilizator andlftLefter Andrei andlft Data 20 martie 2022 21:15:00
Problema Evaluarea unei expresii Scor 0
Compilator py Status done
Runda Arhiva educationala Marime 1.43 kb
fin = open("evaluare.in")
fout = open("evaluare.out", "w")

sir = fin.readline()
sir = "(" + sir + ")"
while "(" in sir:
    lista = []
    first_index = len(sir)-sir[::-1].index("(")-1
    last_index = sir.index(")", first_index)
    numar = 0
    numere = []
    semne = []
    for litera in sir[first_index+1:last_index]:
        if litera.isnumeric():
            numar = numar*10 + int(litera)
        else:
            numere.append(numar)
            numar = 0
            semne.append(litera)
    numere.append(numar)



    while "*" in semne or "/" in semne:
        try:
            index1 = semne.index("*")
        except:
            index1 = -1
        try:
            index2 = semne.index("/")
        except:
            index2 = -1


        if (index1 < index2 and index1 != -1) or index2 == -1:
            s = semne.pop(index1)
            aux = numere.pop(index1+1)
            numere[index1] *= aux

        else:
            semne.pop(index2)
            aux = numere.pop(index2+1)
            numere[index2] = numere[index2]//aux


    while semne:
        if semne[0] == "+":
            semne.pop(0)
            numere[0] += numere[1]
            numere.pop(1)
        else:
            semne.pop(0)
            numere[0] -= numere[1]
            numere.pop(1)

    sir = sir[:first_index]+str(numere[0])+sir[last_index+1:]

fout.write(str(numere[0]))



fin.close()
fout.close()