From 72df4a91160415a94aebdbb5090dded767e5fb76 Mon Sep 17 00:00:00 2001 From: reeseo3o Date: Fri, 20 Mar 2026 23:58:52 +0900 Subject: [PATCH 1/3] week3: valid-palindrome --- valid-palindrome/reeseo3o.js | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 valid-palindrome/reeseo3o.js diff --git a/valid-palindrome/reeseo3o.js b/valid-palindrome/reeseo3o.js new file mode 100644 index 000000000..97bdad734 --- /dev/null +++ b/valid-palindrome/reeseo3o.js @@ -0,0 +1,5 @@ +const isPalindrome = (s) => { + const cleaned = s.toLowerCase().replace(/[^a-z0-9]/g, ''); + const reversed = cleaned.split('').reverse().join(''); + return cleaned === reversed; +}; From 82e6ecb4a9ad1d859b2a75fd7a5f19a4e5c19ccd Mon Sep 17 00:00:00 2001 From: reeseo3o Date: Sat, 21 Mar 2026 20:25:55 +0900 Subject: [PATCH 2/3] week3: number-of-1-bits --- number-of-1-bits/reeseo3o.js | 1 + 1 file changed, 1 insertion(+) create mode 100644 number-of-1-bits/reeseo3o.js diff --git a/number-of-1-bits/reeseo3o.js b/number-of-1-bits/reeseo3o.js new file mode 100644 index 000000000..9206d9a8e --- /dev/null +++ b/number-of-1-bits/reeseo3o.js @@ -0,0 +1 @@ +const hammingWeight = (n) => n.toString(2).split("").filter(b => b === "1").length; From 191748f8d92cdf5b9c8baf1d0413fe4c0c40739e Mon Sep 17 00:00:00 2001 From: reeseo3o Date: Sat, 21 Mar 2026 20:26:11 +0900 Subject: [PATCH 3/3] week3: combination-sum --- combination-sum/reeseo3o.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 combination-sum/reeseo3o.js diff --git a/combination-sum/reeseo3o.js b/combination-sum/reeseo3o.js new file mode 100644 index 000000000..8d8d4ea57 --- /dev/null +++ b/combination-sum/reeseo3o.js @@ -0,0 +1,20 @@ +const combinationSum = (candidates, target) => { + const result = []; + + const backtrack = (startIndex, current, remaining) => { + if (remaining === 0) { + result.push([...current]); + return; + } + if (remaining < 0) return; + + for (let i = startIndex; i < candidates.length; i++) { + current.push(candidates[i]); + backtrack(i, current, remaining - candidates[i]); + current.pop(); + } + }; + + backtrack(0, [], target); + return result; +};