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