Dada uma expressão aritmética, que pode incluir parênteses ( ()
), expoentes ( ^
), divisão ( /
) e multiplicação ( *
), adição ( +
) e subtração ( -
) (nessa ordem de operação), como
a ^ (2 / 3) * 9 * 3 - 4 * 6
produz a mesma expressão na notação de prefixo.
(- (* (* (^ a (/ 2 3)) 9) 3) (* 4 6))
Os espaços são opcionais na entrada e na saída. Você pode assumir que todos os operadores são associativos à esquerda e que todos os números na expressão são números inteiros de um dígito (ou seja [0-9]
).
Este é um desafio de código de golfe, portanto, a solução mais curta vence.
*
e /
têm a mesma precedência, assim como +
amd -
.
3+4-5+6 = (((3+4)-5)+6)
Ou seja, é ou((3+4)-(5+6))
?