Gegeben ein arithmetischer Ausdruck, der Klammern ( ()), Exponenten ( ^), Division ( /) und Multiplikation ( *), Addition ( +) und Subtraktion ( -) (in dieser Reihenfolge der Operation) enthalten kann, wie z
a ^ (2 / 3) * 9 * 3 - 4 * 6
Den gleichen Ausdruck in Präfixnotation ausgeben.
(- (* (* (^ a (/ 2 3)) 9) 3) (* 4 6))
Leerzeichen sind sowohl in der Eingabe als auch in der Ausgabe optional. Sie können davon ausgehen, dass alle Operatoren linksassoziativ sind und dass alle Zahlen im Ausdruck einstellige Ganzzahlen sind [0-9].
Dies ist eine Code-Golf-Herausforderung, daher gewinnt die kürzeste Lösung.
*und /haben die gleiche Priorität wie +amd -.
3+4-5+6 = (((3+4)-5)+6)oder((3+4)-(5+6))?