diff --git a/lib/array_intersection.rb b/lib/array_intersection.rb index ac8771f..65a77ac 100644 --- a/lib/array_intersection.rb +++ b/lib/array_intersection.rb @@ -1,3 +1,17 @@ def intersection(list1, list2) - raise NotImplementedError, "Intersection not implemented" + count_hash = {} + result = [] + + list1.each do |number| + count_hash[number] = true + end + + list2.each do |number| + if count_hash[number] == true + result << number + end + end + + return result + end \ No newline at end of file diff --git a/lib/palindrome_permutation.rb b/lib/palindrome_permutation.rb index f113692..be6cf87 100644 --- a/lib/palindrome_permutation.rb +++ b/lib/palindrome_permutation.rb @@ -1,4 +1,21 @@ def palindrome_permutation?(string) - raise NotImplementedError, "palindrome_permutation? not implemented" + letter_hash = {} + + string.split("").each do |letter| + if letter_hash[letter] == nil + letter_hash[letter] = 1 + else + letter_hash[letter] += 1 + end + end + + midpoint = 0 + letter_hash.each_value do |times| + if times % 2 != 0 + midpoint += 0 + end + end + + return midpoint <= 1 end \ No newline at end of file diff --git a/lib/permutations.rb b/lib/permutations.rb index 3b08381..8d626db 100644 --- a/lib/permutations.rb +++ b/lib/permutations.rb @@ -1,4 +1,28 @@ def permutations?(string1, string2) - raise NotImplementedError, "permutations? not implemented" + word_hash = {} + + string1.split("").each do |letter| + if word_hash[letter] == nil + word_hash[letter] = 1 + else + word_hash[letter] += 1 + end + end + + string2.split("").each do |letter| + if word_hash[letter] == nil + return false + else + word_hash[letter] -= 1 + end + end + + word_hash.each_value do |times| + if times != 0 + return false + end + end + + return true end \ No newline at end of file