1
1
mirror of https://github.com/theoludwig/programming-challenges.git synced 2024-12-08 00:45:29 +01:00

feat: add reverse-polish-notation challenge

This commit is contained in:
Divlo 2020-09-29 08:22:14 +00:00
parent 390ae5b745
commit 9999d34d9a
3 changed files with 59 additions and 0 deletions

View File

@ -0,0 +1,25 @@
# reverse-polish-notation
Created by [@Divlo](https://github.com/Divlo) on 29 September 2020.
## Instructions :
Your job is to create a calculator which evaluates expressions in Reverse Polish notation (a mathematical notation in which operators follow their operands. It does not need any parentheses as long as each operator has a fixed number of operands).
For example expression 5 1 2 + 4 * + 3 - (which is equivalent to 5 + ((1 + 2) * 4) - 3 in normal notation) should evaluate to 14.
For your convenience, the input is formatted such that a space is provided between every token.
Empty expression should evaluate to 0.
Valid operations are +, -, *, /.
You may assume that there won't be exceptional situations (like stack underflow or division by zero).
## Source :
- [Reverse polish notation - Codewars](https://www.codewars.com/kata/52f78966747862fc9a0009ae)
## Examples :
See the `input-output.json` file for examples of input/output.

View File

@ -0,0 +1,34 @@
[
{
"input": [""],
"output": 0
},
{
"input": ["3"],
"output": 3
},
{
"input": ["3.5"],
"output": 3.5
},
{
"input": ["1 3 +"],
"output": 4
},
{
"input": ["1 3 *"],
"output": 3
},
{
"input": ["1 3 -"],
"output": -2
},
{
"input": ["4 2 /"],
"output": 2
},
{
"input": ["5 3 + 12 8 + * 10 /"],
"output": 16
}
]