Étant donné une expression arithmétique, qui peut inclure des parenthèses ( ()), des exposants ( ^), une division ( /) et une multiplication ( *), une addition ( +) et une soustraction ( -) (dans cet ordre de fonctionnement), telles que
a ^ (2 / 3) * 9 * 3 - 4 * 6
sortie la même expression en notation préfixe.
(- (* (* (^ a (/ 2 3)) 9) 3) (* 4 6))
Les espaces sont facultatifs à l'entrée comme à la sortie. Vous pouvez supposer que tous les opérateurs sont associatifs à gauche et que tous les nombres de l'expression sont des entiers à un chiffre (c'est-à-dire [0-9]).
Il s'agit d'un défi de golf de code, donc la solution la plus courte l'emporte.
*et /ont la même priorité, comme le fait +amd -.
3+4-5+6 = (((3+4)-5)+6)ou((3+4)-(5+6))?