diff --git a/combination-sum/mrlee7.py b/combination-sum/mrlee7.py new file mode 100644 index 0000000000..6f1c3da829 --- /dev/null +++ b/combination-sum/mrlee7.py @@ -0,0 +1,20 @@ +from typing import List + + +class Solution: + def combinationSum(self, candidates: List[int], target: int) -> List[List[int]]: + result, nums = list(), list() + + def dfs(start_position, total_sum): + if total_sum > target: + return + if total_sum == target: + result.append(nums[:]) + for idx in range(start_position, len(candidates)): + num = candidates[idx] + nums.append(num) + dfs(idx, total_sum + num) + nums.pop() + + dfs(0, 0) + return result diff --git a/number-of-1-bits/mrlee7.py b/number-of-1-bits/mrlee7.py new file mode 100644 index 0000000000..6b1b7f37d8 --- /dev/null +++ b/number-of-1-bits/mrlee7.py @@ -0,0 +1,8 @@ +class Solution: + def hammingWeight(self, n: int) -> int: + result = 0 + + while n > 0: + result += n % 2 + n //= 2 + return result diff --git a/valid-palindrome/mrlee7.py b/valid-palindrome/mrlee7.py new file mode 100644 index 0000000000..e4983e01d3 --- /dev/null +++ b/valid-palindrome/mrlee7.py @@ -0,0 +1,7 @@ +import re + + +class Solution: + def isPalindrome(self, s: str) -> bool: + result = re.sub(r'[^a-zA-Z0-9]', '', s).lower() + return result == result[::-1]