diff --git a/combination-sum/chordpli.py b/combination-sum/chordpli.py new file mode 100644 index 000000000..41ed285c8 --- /dev/null +++ b/combination-sum/chordpli.py @@ -0,0 +1,29 @@ +from typing import List + + +class Solution: + def combinationSum(self, candidates: List[int], target: int) -> List[List[int]]: + result = [] + candidates.sort() + self.__backtrack__(candidates, 0, target, result, []) + return result + + def __backtrack__(self, candidates: List[int], current_idx: int, target: int, result: List[List[int]], + current_arr: List[int]): + if current_idx >= len(candidates): + return + + add_value = sum(current_arr) + candidates[current_idx] + + if add_value == target: + current_arr.append(candidates[current_idx]) + result.append(current_arr.copy()) + current_arr.pop() + + if add_value > target: + return self.__backtrack__(candidates, current_idx + 1, target, result, current_arr) + + current_arr.append(candidates[current_idx]) + self.__backtrack__(candidates, current_idx, target, result, current_arr) + current_arr.pop() + self.__backtrack__(candidates, current_idx + 1, target, result, current_arr) diff --git a/number-of-1-bits/chordpli.py b/number-of-1-bits/chordpli.py new file mode 100644 index 000000000..dc214bef8 --- /dev/null +++ b/number-of-1-bits/chordpli.py @@ -0,0 +1,3 @@ +class Solution: + def hammingWeight(self, n: int) -> int: + return bin(n).count('1') diff --git a/valid-palindrome/chordpli.py b/valid-palindrome/chordpli.py new file mode 100644 index 000000000..f2582cf40 --- /dev/null +++ b/valid-palindrome/chordpli.py @@ -0,0 +1,13 @@ +import re + + +class Solution: + def isPalindrome(self, s: str) -> bool: + lower_s = s.lower() + lower_eng_str = re.sub(r"[^a-z0-9]", "", lower_s) + reverse_str = lower_eng_str[::-1] + + if lower_eng_str == reverse_str: + return True + + return False