diff --git a/counting-bits/saysimple.py b/counting-bits/saysimple.py new file mode 100644 index 000000000..1e6d543e2 --- /dev/null +++ b/counting-bits/saysimple.py @@ -0,0 +1,11 @@ +# TC: O(n), SC: O(n) + +class Solution: + def countBits(self, n: int) -> List[int]: + answer = [] + + for i in range(n+1): + b = bin(i) + answer.append(int(b.count("1"))) + + return answer diff --git a/group-anagrams/saysimple.py b/group-anagrams/saysimple.py new file mode 100644 index 000000000..4bf537328 --- /dev/null +++ b/group-anagrams/saysimple.py @@ -0,0 +1,14 @@ +# TC: O(n), SC: O(n) + +from collections import defaultdict + +class Solution: + def groupAnagrams(self, strs: List[str]) -> List[List[str]]: + d = defaultdict(list) + for s in strs: + if not s: + d["0"].append("") + else: + d["".join(sorted(s))].append(s) + + return [d[s] for s in d] diff --git a/missing-number/saysimple.py b/missing-number/saysimple.py new file mode 100644 index 000000000..9a5fc6755 --- /dev/null +++ b/missing-number/saysimple.py @@ -0,0 +1,7 @@ +# TC: O(n), SC: O(1) + +class Solution: + def missingNumber(self, nums: List[int]) -> int: + for i in range(len(nums)+1): + if i not in nums: + return i diff --git a/number-of-1-bits/saysimple.py b/number-of-1-bits/saysimple.py new file mode 100644 index 000000000..d9011b99a --- /dev/null +++ b/number-of-1-bits/saysimple.py @@ -0,0 +1,5 @@ +# TC: O(1), SC: O(1) + +class Solution: + def hammingWeight(self, n: int) -> int: + return bin(n).count("1") diff --git a/reverse-bits/saysimple.py b/reverse-bits/saysimple.py new file mode 100644 index 000000000..136bc3d2f --- /dev/null +++ b/reverse-bits/saysimple.py @@ -0,0 +1,5 @@ +# TC: O(1), SC: O(1) + +class Solution: + def reverseBits(self, n: int) -> int: + return int(f"{bin(n)[2:]:0>32}"[::-1], 2)