Skip to content

Commit 7d24573

Browse files
Update prefix_evaluation.py
1 parent 220a705 commit 7d24573

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

data_structures/stacks/prefix_evaluation.py

+13-5
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ def evaluate(expression):
3232
21
3333
>>> evaluate("/ * 10 2 + 4 1 ")
3434
4.0
35+
>>> evaluate("2")
36+
2
37+
>>> evaluate("+ * 2 3 / 8 4")
38+
8.0
3539
"""
3640
stack = []
3741

@@ -51,22 +55,26 @@ def evaluate(expression):
5155
return stack.pop()
5256

5357

54-
def evaluate_recursive(expression: list):
58+
def evaluate_recursive(expression: list[str]):
5559
"""
5660
Alternative implementation
5761
5862
>>> evaluate_recursive(['2'])
59-
2.0
60-
>>> expression = ['+', '*', '2', '3', '/', '8', 4]
63+
2
64+
>>> expression = ['+', '*', '2', '3', '/', '8', '4']
6165
>>> evaluate_recursive(expression)
6266
8.0
6367
>>> expression
6468
[]
69+
>>> evaluate(['+', '9', '*', '2', '6'])
70+
21
71+
>>> evaluate(['/', '*', '10', '2', '+', '4', '1'])
72+
4.0
6573
"""
6674

6775
op = expression.pop(0)
68-
if op not in operators:
69-
return float(op)
76+
if is_operand(op):
77+
return int(op)
7078

7179
operation = operators[op]
7280

0 commit comments

Comments
 (0)