Dada una expresión aritmética, que puede incluir paréntesis ( ()
), exponentes ( ^
), división ( /
) y multiplicación ( *
), suma ( +
) y resta ( -
) (en ese orden de operación), como
a ^ (2 / 3) * 9 * 3 - 4 * 6
genera la misma expresión en notación de prefijo.
(- (* (* (^ a (/ 2 3)) 9) 3) (* 4 6))
Los espacios son opcionales tanto en la entrada como en la salida. Puede suponer que todos los operadores son asociativos a la izquierda y que todos los números en la expresión son enteros de un solo dígito (es decir [0-9]
).
Este es un desafío de código de golf, por lo que gana la solución más corta.
*
y /
tienen la misma precedencia, como lo hacen +
amd -
.
3+4-5+6 = (((3+4)-5)+6)
o((3+4)-(5+6))
?