From b59cf2e87d85cb3ecf95d9bdbf31b6087487a51a Mon Sep 17 00:00:00 2001 From: printjin Date: Sun, 13 Apr 2025 10:44:20 +0900 Subject: [PATCH 1/7] Solve : Valid Palindrome --- valid-palindrome/printjin-gmailcom.py | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 valid-palindrome/printjin-gmailcom.py diff --git a/valid-palindrome/printjin-gmailcom.py b/valid-palindrome/printjin-gmailcom.py new file mode 100644 index 000000000..58f90e78a --- /dev/null +++ b/valid-palindrome/printjin-gmailcom.py @@ -0,0 +1,4 @@ +class Solution: + def isPalindrome(self, s): + cleaned = [c.lower() for c in s if c.isalnum()] + return cleaned == cleaned[::-1] \ No newline at end of file From 8076db0f2d97f52d5744218b8b1b64604bd91eca Mon Sep 17 00:00:00 2001 From: printjin Date: Sun, 13 Apr 2025 10:48:38 +0900 Subject: [PATCH 2/7] Fix : Lint Error --- valid-palindrome/printjin-gmailcom.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/valid-palindrome/printjin-gmailcom.py b/valid-palindrome/printjin-gmailcom.py index 58f90e78a..a58734637 100644 --- a/valid-palindrome/printjin-gmailcom.py +++ b/valid-palindrome/printjin-gmailcom.py @@ -1,4 +1,4 @@ class Solution: def isPalindrome(self, s): cleaned = [c.lower() for c in s if c.isalnum()] - return cleaned == cleaned[::-1] \ No newline at end of file + return cleaned == cleaned[::-1] From 3a7c42b3fd10f4e2a7bf69133785a124e9481a38 Mon Sep 17 00:00:00 2001 From: printjin Date: Sun, 13 Apr 2025 17:35:41 +0900 Subject: [PATCH 3/7] Solve : Number if 1 Bits --- number-of-1-bits/printjin-gmailcom.py | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 number-of-1-bits/printjin-gmailcom.py diff --git a/number-of-1-bits/printjin-gmailcom.py b/number-of-1-bits/printjin-gmailcom.py new file mode 100644 index 000000000..060b273cc --- /dev/null +++ b/number-of-1-bits/printjin-gmailcom.py @@ -0,0 +1,3 @@ +class Solution: + def hammingWeight(self, n): + return bin(n).count('1') From 791072c6fc79a66b7a37eebc0d92757449bd2dc0 Mon Sep 17 00:00:00 2001 From: printjin Date: Sun, 13 Apr 2025 17:37:42 +0900 Subject: [PATCH 4/7] Refactor : Number of 1 Bits --- combination-sum/printjin-gmailcom.py | 0 number-of-1-bits/printjin-gmailcom.py | 6 +++++- 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 combination-sum/printjin-gmailcom.py diff --git a/combination-sum/printjin-gmailcom.py b/combination-sum/printjin-gmailcom.py new file mode 100644 index 000000000..e69de29bb diff --git a/number-of-1-bits/printjin-gmailcom.py b/number-of-1-bits/printjin-gmailcom.py index 060b273cc..13a6eb9ba 100644 --- a/number-of-1-bits/printjin-gmailcom.py +++ b/number-of-1-bits/printjin-gmailcom.py @@ -1,3 +1,7 @@ class Solution: def hammingWeight(self, n): - return bin(n).count('1') + cnt = 0 + while n > 0: + cnt += n % 2 + n //= 2 + return cnt From e64125a41b9e516639d2a9c2aa241fbc5dd3926a Mon Sep 17 00:00:00 2001 From: printjin Date: Sun, 13 Apr 2025 17:50:30 +0900 Subject: [PATCH 5/7] Solve : Decode Ways --- decode-ways/printjin-gmailcom.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 decode-ways/printjin-gmailcom.py diff --git a/decode-ways/printjin-gmailcom.py b/decode-ways/printjin-gmailcom.py new file mode 100644 index 000000000..ffec156e3 --- /dev/null +++ b/decode-ways/printjin-gmailcom.py @@ -0,0 +1,13 @@ +class Solution: + def numDecodings(self, s): + if not s: + return 0 + dp = [0] * (len(s) + 1) + dp[0] = 1 + dp[1] = 1 if s[0] != '0' else 0 + for i in range(2, len(s) + 1): + if '1' <= s[i - 1] <= '9': + dp[i] += dp[i - 1] + if '10' <= s[i - 2:i] <= '26': + dp[i] += dp[i - 2] + return dp[len(s)] From 6a2d333bce99ed8092eb6ab451bf379a228ba01d Mon Sep 17 00:00:00 2001 From: printjin Date: Sun, 13 Apr 2025 18:13:45 +0900 Subject: [PATCH 6/7] Solve : Maximum Subarray --- maximum-subarray/printjin-gmailcom.py | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 maximum-subarray/printjin-gmailcom.py diff --git a/maximum-subarray/printjin-gmailcom.py b/maximum-subarray/printjin-gmailcom.py new file mode 100644 index 000000000..4e420ab67 --- /dev/null +++ b/maximum-subarray/printjin-gmailcom.py @@ -0,0 +1,7 @@ +class Solution: + def maxSubArray(self, nums): + max_sum = current_sum = nums[0] + for num in nums[1:]: + current_sum = max(num, current_sum + num) + max_sum = max(max_sum, current_sum) + return max_sum From ae107c86f54c5d5bbde4f1705d8d707c3635f8a4 Mon Sep 17 00:00:00 2001 From: printjin Date: Sun, 13 Apr 2025 18:18:26 +0900 Subject: [PATCH 7/7] Solve : Combination Sum --- combination-sum/printjin-gmailcom.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/combination-sum/printjin-gmailcom.py b/combination-sum/printjin-gmailcom.py index e69de29bb..94afe2604 100644 --- a/combination-sum/printjin-gmailcom.py +++ b/combination-sum/printjin-gmailcom.py @@ -0,0 +1,15 @@ +class Solution: + def combinationSum(self, candidates, target): + output, nums = [], [] + def dfs(start, total): + if total > target: + return + if total == target: + return output.append(nums[:]) + for i in range(start, len(candidates)): + num = candidates[i] + nums.append(num) + dfs(i, total + num) + nums.pop() + dfs(0, 0) + return output