Skip to content

Commit 8ed4e81

Browse files
authored
Merge pull request #320 from mangodm-web/main
[DM] Week 01 Solutions
2 parents 0748714 + d96b82f commit 8ed4e81

File tree

4 files changed

+56
-0
lines changed

4 files changed

+56
-0
lines changed

contains-duplicate/dm.py

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
from typing import List
2+
3+
4+
class Solution:
5+
def containsDuplicate(self, nums: List[int]) -> bool:
6+
return len(nums) != len(set(nums))

number-of-1-bits/dm.py

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
class Solution:
2+
def hammingWeight(self, n: int, acc: int = 0) -> int:
3+
if n == 0:
4+
return acc
5+
6+
return self.hammingWeight(n // 2, acc + n % 2)

palindromic-substrings/dm.py

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
class Solution:
2+
def countPalindrome(self, s: str, left: int, right: int) -> int:
3+
result = 0
4+
5+
while left >= 0 and right < len(s) and s[left] == s[right]:
6+
result += 1
7+
left -= 1
8+
right += 1
9+
10+
return result
11+
12+
def countSubstrings(self, s: str) -> int:
13+
total_count = 0
14+
15+
for i in range(len(s)):
16+
left = right = i
17+
total_count += self.countPalindrome(s, left, right)
18+
19+
for i in range(len(s) - 1):
20+
left, right = i, i + 1
21+
total_count += self.countPalindrome(s, left, right)
22+
23+
return total_count

top-k-frequent-elements/dm.py

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
from typing import List
2+
3+
4+
class Solution:
5+
def topKFrequent(self, nums: List[int], k: int) -> List[int]:
6+
count_dict = {}
7+
frequency_bucket = [[] for i in range(len(nums) + 1)]
8+
result = []
9+
10+
for num in nums:
11+
count_dict[num] = count_dict.get(num, 0) + 1
12+
13+
for num, count in count_dict.items():
14+
frequency_bucket[count].append(num)
15+
16+
for i in range(len(frequency_bucket) - 1, 0, -1):
17+
for num in frequency_bucket[i]:
18+
result.append(num)
19+
20+
if len(result) == k:
21+
return result

0 commit comments

Comments
 (0)