Skip to content

Commit 3229bea

Browse files
committed
Week02 Solutions
1 parent 6214075 commit 3229bea

File tree

3 files changed

+92
-0
lines changed

3 files changed

+92
-0
lines changed

climbing-stairs/HYUNAHKO.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
class Solution:
2+
def climbStairs(self, n: int) -> int:
3+
if (n<1 or n>45):
4+
return 0
5+
6+
def factorial(num):
7+
if num <= 1:
8+
return 1
9+
10+
result = 1
11+
for i in range(2, num+1):
12+
result *= i
13+
return result
14+
15+
steps = 0
16+
cur_steps = 1
17+
quotient = n // 2
18+
k=0
19+
20+
for _ in range(quotient+1):
21+
cur_steps = factorial(n-k) / (factorial(k)*factorial(n-2*k))
22+
k+=1
23+
steps += cur_steps
24+
25+
return int(steps)
26+
27+
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
class Solution:
2+
def productExceptSelf(self, nums: List[int]) -> List[int]:
3+
n = len(nums)
4+
result_list = [0] * n
5+
if len(nums) <2 or len(nums) > 1e5:
6+
return None
7+
8+
p = 1
9+
for i in range(n):
10+
result_list[i] = p
11+
p *= nums[i]
12+
13+
p = 1
14+
for i in range(n - 1, -1, -1):
15+
result_list[i] *= p
16+
p *= nums[i]
17+
18+
return result_list
19+
20+
21+
22+
class Solution:
23+
def productExceptSelf(self, nums: List[int]) -> List[int]:
24+
result_list = [0] * len(nums)
25+
if len(nums) <2 or len(nums) > 1e5:
26+
return None
27+
28+
for idx in range(0, len(nums)):
29+
result = 1
30+
for idx_left in range(0, idx):
31+
result *= nums[idx_left]
32+
33+
for idx_right in range(idx+1, len(nums)):
34+
result *= nums[idx_right]
35+
36+
result_list[idx] = result
37+
38+
39+
return result_list
40+

valid-anagram/HYUNAHKO.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
from collections import Counter
2+
3+
class Solution:
4+
def isAnagram(self, s: str, t: str) -> bool:
5+
letter_dict1 = {}
6+
letter_dict2 = {}
7+
letter_list1 = list(s)
8+
letter_list2 = list(t)
9+
10+
for i in letter_list1:
11+
letter_dict1[i] = letter_dict1.get(i, 0) + 1
12+
13+
for j in letter_list2:
14+
letter_dict2[j] = letter_dict2.get(j, 0) + 1
15+
16+
if (letter_dict1 == letter_dict2):
17+
return True
18+
else:
19+
return False
20+
21+
22+
class Solution:
23+
def isAnagram(self, s: str, t: str) -> bool:
24+
return Counter(s) == Counter(t)
25+

0 commit comments

Comments
 (0)