Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 21 additions & 7 deletions test_skeleton.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,11 @@ class TestSkeleton
# TestSkeleton.new.even_or_odd(0) should return "even"
# TestSkeleton.new.even_or_odd(-42) should return "even"
def even_or_odd(number)
# Your solution should be here
if number % 2 == 0
return "even"
else
return "odd"
end
end

# https://www.codewars.com/kata/5583090cbe83f4fd8c000051
Expand All @@ -21,7 +25,12 @@ def even_or_odd(number)
# TestSkeleton.new.reverse_array(348597) should return [7,9,5,8,4,3]
# TestSkeleton.new.reverse_array(0) should return [0]
def reverse_array(number)
# Your solution should be here
n = number.to_s.chars
list = []
for i in n
list.unshift i.to_i
end
return list
end

# https://www.codewars.com/kata/554b4ac871d6813a03000035
Expand All @@ -36,7 +45,7 @@ def reverse_array(number)
# There will always be at least one number in the input string.
# Output string must be two numbers separated by a single space, and highest number is first.
def high_and_low(test_string)
# Your solution should be here
return test_string.split(' ').map(&:to_i).minmax.reverse.join(" ")
end

# https://www.codewars.com/kata/5b16490986b6d336c900007d
Expand All @@ -49,7 +58,7 @@ def high_and_low(test_string)
# TestSkeleton.new.my_languages({"Hindi" => 60, "Dutch" => 93, "Greek" => 71}) should return ["Dutch", "Greek", "Hindi"]
# TestSkeleton.new.my_languages({"C++" => 50, "ASM" => 10, "Haskell" => 20}) should return []
def my_languages(hash)
# Your solution should be here
return hash.select { |k, v| v >= 60 }.sort_by { |(k, v)| -v }.map(&:first)
end

# https://www.codewars.com/kata/563089b9b7be03472d00002b
Expand All @@ -62,7 +71,7 @@ def my_languages(hash)
# values_list = [1, 3, 4, 2]
# TestSkeleton.new.remove_array_elements(integer_list, values_list) should return [5, 6 ,7 ,8]
def remove_array_elements(source_array, values_array)
# Your solution should be here
return source_array - values_array
end

# https://www.codewars.com/kata/5b39e91ee7a2c103300018b3
Expand All @@ -72,7 +81,7 @@ def remove_array_elements(source_array, values_array)
# string = "alpha beta beta gamma gamma gamma delta alpha beta beta gamma gamma gamma delta"
# TestSkeleton.new.consecutive_duplicates(string) should return "alpha beta gamma delta alpha beta gamma delta"
def consecutive_duplicates(string)
# Your solution should be here
return string.split(' ').chunk(&:itself).map(&:first).join(' ').to_s
end

# https://www.codewars.com/kata/56747fd5cb988479af000028
Expand All @@ -90,6 +99,11 @@ def consecutive_duplicates(string)
# Output:
# The middle character(s) of the word represented as a string.
def middle_chars(test_string)
# Your solution should be here
str_len = test_string.size
if str_len % 2 == 0
return test_string[(str_len / 2 - 1)..(str_len / 2)]
else
return test_string[str_len / 2]
end
end
end