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:
parent
390ae5b745
commit
9999d34d9a
25
challenges/reverse-polish-notation/README.md
Normal file
25
challenges/reverse-polish-notation/README.md
Normal 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.
|
34
challenges/reverse-polish-notation/input-output.json
Normal file
34
challenges/reverse-polish-notation/input-output.json
Normal 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
|
||||||
|
}
|
||||||
|
]
|
Loading…
Reference in New Issue
Block a user