File tree Expand file tree Collapse file tree 2 files changed +60
-0
lines changed Expand file tree Collapse file tree 2 files changed +60
-0
lines changed Original file line number Diff line number Diff line change 1+ class Solution :
2+ def climbStairs (self , n : int ) -> int :
3+ '''
4+ sol 1
5+ Runtime: Beats 100.00% / O(n^2)
6+ Memory: Beats 8.16% / O(1)
7+ '''
8+ import math
9+ ways = 1
10+ max_count_2steps = int (n / 2 )
11+ for i in range (1 , max_count_2steps + 1 ):
12+ current = math .perm (n - i ) / (math .perm (i ) * math .perm (n - (2 * i )))
13+ ways += current
14+ return int (ways )
15+
16+ '''
17+ sol 2
18+ Runtime: Beats 100.00% / O(n^2)
19+ Memory: Beats 48.54% / O(1)
20+ '''
21+ ways = 0
22+ max_count_2steps = n // 2
23+ for i in range (max_count_2steps + 1 ):
24+ ways += math .comb (n - i , i )
25+ return ways
Original file line number Diff line number Diff line change 1+ class Solution :
2+ def isAnagram (self , s : str , t : str ) -> bool :
3+ '''
4+ sol 1
5+ Runtime: Beats 78.74% / O(N)
6+ Memory: Beats 64.30% / O(1)
7+ '''
8+ s_dict = dict ()
9+ for elem in s :
10+ try :
11+ s_dict [elem ] += 1
12+ except Exception as ex :
13+ s_dict [elem ] = 1
14+ for elem in t :
15+ try :
16+ s_dict [elem ] -= 1
17+ except Exception as ex :
18+ return False
19+ return not (any (s_dict .values ()))
20+
21+ '''
22+ sol 2
23+ Runtime: Beats 72.12% / O(N)
24+ Memory: Beats 97.51% / O(1)
25+ '''
26+ from itertools import zip_longest
27+ from collections import defaultdict
28+
29+ ana_dict = defaultdict (int )
30+ for elem1 , elem2 in zip_longest (s , t ):
31+ ana_dict [elem1 ] += 1
32+ ana_dict [elem2 ] -= 1
33+ return not (any (ana_dict .values ()))
34+
35+
You can’t perform that action at this time.
0 commit comments