algorithms

Algorithm implementations
git clone git://git.laack.co/algorithms.git
Log | Files | Refs | README

commit 91519e362bc788726d612a54f7581c23b0db711c
parent 9718ac04be30e364279b5b84b84aecc9cdcfd4f4
Author: Andrew Laack <andrew@laack.co>
Date:   Sat, 22 Aug 2026 11:52:30 -0500

More problems

Diffstat:
Acheck-divisibility-by-digit-sum-and-product/check-divisibility-by-digit-sum-and-product.py | 16++++++++++++++++
Atwo-sums/two-sumsV2.py | 12++++++++++++
Avalid-parenthesis/valid-parenthesisV2.cpp | 30++++++++++++++++++++++++++++++
3 files changed, 58 insertions(+), 0 deletions(-)

diff --git a/check-divisibility-by-digit-sum-and-product/check-divisibility-by-digit-sum-and-product.py b/check-divisibility-by-digit-sum-and-product/check-divisibility-by-digit-sum-and-product.py @@ -0,0 +1,16 @@ +class Solution: + def checkDivisibility(self, n: int) -> bool: + digits = list(str(n)) + + sum = 0 + product = 1 + + for digit in digits: + current = int(digit) + sum += current + product *= current + + if n % (product + sum) == 0: + return True + + return False diff --git a/two-sums/two-sumsV2.py b/two-sums/two-sumsV2.py @@ -0,0 +1,12 @@ +class Solution: + def twoSum(self, nums: List[int], target: int) -> List[int]: + + num_dict = {} + + for i in range(len(nums)): + num_dict[nums[i]] = i + + for i in range(len(nums)): + current = nums[i] + if (target - current) in num_dict and num_dict[target - current] != i: + return [i, num_dict[target-current]] diff --git a/valid-parenthesis/valid-parenthesisV2.cpp b/valid-parenthesis/valid-parenthesisV2.cpp @@ -0,0 +1,30 @@ +class Solution { +public: + bool isValid(string s) { + vector<char> stack = {}; + + unordered_map<char, char> mapping = { + {'(', ')'}, + {'{', '}'}, + {'[', ']'} + }; + + for (char value: s) { + if(mapping.find(value) != mapping.end()){ + stack.push_back(value); + } + else { + + if (stack.size() == 0) return false; + + char lastOpening = stack.back(); + stack.pop_back(); + + if (mapping[lastOpening] != value) return false; + + } + } + + return stack.size() == 0; + } +};