Cette semaine, c'est Jordan qui vous propose un #KataOfTheWeek : RPN Calculator
Briefing du Kata : En notation polonaise inversée, les opérateurs suivent leurs opérandes ; par exemple, pour ajouter 3 et 4, on écrirait 3 4 +
au lieu de 3 + 4
. S'il y a plusieurs opérations, les opérateurs sont donnés immédiatement après leur deuxième opérande ; ainsi, l'expression écrite 3 - 4 + 5
en notation conventionnelle serait écrite 3 4 - 5 +
en notation polonaise inversée : 4 est d'abord soustrait de 3, puis 5 y est ajouté. La notation polonaise inversée présente l'avantage de supprimer le recours aux parenthèses requises par la notation infixe. Alors que 3 - 4 × 5
peut également être écrit 3 - (4 × 5)
, cela signifie quelque chose de tout à fait différent de (3 - 4) × 5
. En notation polonaise inversée, le premier pourrait être écrit 3 4 5 × -
, ce qui signifie sans ambiguïté 3 (4 5 ×) -
ce qui réduit à 3 20 -
(qui peut encore être réduit à -17) ; ce dernier pourrait être écrit 3 4 - 5 ×
(ou 5 3 4 - ×
, si le formatage utilisé est le même), ce qui signifie sans ambiguïté (3 4 -) 5 ×
.
Plus d'information ici: https://en.wikipedia.org/wiki/Reverse_Polish_notation
Voici des exemples d'expressions :
1
=>1
1 2 +
=>(1 + 2) = 3
20 5 /
=>(20 / 5) = 4
4 2 + 3 -
=>(4 + 2) - 3 = 3
3 5 8 * 7 + *
=>3*((5*8) + 7) = 141
Saurez-vous résoudre le problème ?
Bon courage ! Retrouvez la solution dans cet article 😉