Walkthrough

Solutions

def array_times_two(arr)
  return [] if arr.empty?
  times_two_array = []
  arr.each do |element|
    times_two_array << element * 2
  end

  times_two_array
end


def array_times_two!(arr)
  arr.each_index do |index|
    arr[index] = arr[index] * 2
  end
end

def redact_five_letter_words(str)
  result_array = []
  str.split.each do |word|
    if word.length == 5
      result_array << "#####"
    else
      result_array << word
    end
  end
  result_array.join(' ')
end

def largest_pair(pairs_arr)
  # assume the first subarray is the largest until we find out otherwise
  largest = pairs_arr.first

  pairs_arr.each_index do |idx|
    if largest[0] + largest[1] < pairs_arr[idx][0] + pairs_arr[idx][1]
      # reset the largest variable; we've found out otherwise!
      largest = pairs_arr[idx]
    end
  end

  largest
end

#Alternate solutions using while-loops

def array_times_two(arr)
  new_arr = []
  i = 0
  while i < arr.length
    new_arr << arr[i] * 2
    i += 1
  end
  new_arr
end

def array_times_two!(arr)
  i = 0
  while i < arr.length
    arr[i] = arr[i] * 2
    i += 1
  end
  arr
end

def redact_five_letter_words(str)
  arr = str.split
  i = 0
  while i < arr.length
    if arr[i].length == 5
      arr[i] = "#####"
    end
    i += 1
  end
  arr.join(" ")
end

def largest_pair(pairs_array)
  largest = pairs_array[0]
  i = 1
  while i < pairs_array.length
    if add_pair(pairs_array[i]) > add_pair(largest)
      largest = pairs_array[i]
    end
    i += 1
  end
  largest
end

def add_pair(arr)
  arr[0] + arr[1]
end

results matching ""

    No results matching ""