File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1- #!/usr/bin/env python3
2-
3-
4- def climb_stairs (number_of_steps : int ) -> int :
5- """
6- LeetCdoe No.70: Climbing Stairs
7- Distinct ways to climb a number_of_steps staircase where each time you can either
8- climb 1 or 2 steps.
9-
10- Args:
11- number_of_steps: number of steps on the staircase
12-
13- Returns:
14- Distinct ways to climb a number_of_steps staircase
15-
16- Raises:
17- AssertionError: number_of_steps not positive integer
18-
19- >>> climb_stairs(3)
20- 3
21- >>> climb_stairs(1)
22- 1
23- >>> climb_stairs(-7) # doctest: +ELLIPSIS
24- Traceback (most recent call last):
25- ...
26- AssertionError: number_of_steps needs to be positive integer, your input -7
27- """
28- assert isinstance (number_of_steps , int ) and number_of_steps > 0 , (
29- f"number_of_steps needs to be positive integer, your input { number_of_steps } "
30- )
31- if number_of_steps == 1 :
32- return 1
33- previous , current = 1 , 1
34- for _ in range (number_of_steps - 1 ):
35- current , previous = current + previous , current
36- return current
37-
38-
1+ """
2+ Climbing Stairs Problem
3+ LeetCode #70
4+ Author: Noorin Rahila
5+ """
6+
7+ class Solution :
8+ def climbStairs (self , n : int ) -> int :
9+ a = 1
10+ b = 1
11+ if n == 0 :
12+ return 0
13+ elif n == 1 :
14+ return 1
15+ else :
16+ for i in range (1 , n ):
17+ c = a + b
18+ a = b
19+ b = c
20+ return b
21+
22+ # Example usage
3923if __name__ == "__main__" :
40- import doctest
24+ s = Solution ()
25+ print (s .climbStairs (5 )) # Output: 8
4126
42- doctest .testmod ()
You can’t perform that action at this time.
0 commit comments