Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Aurora Anderson whiteboard 2 #4

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Changes from 3 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
58 changes: 58 additions & 0 deletions aurora-answers.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# problem 1

def mirror(list)

# returns a new array
# doubles size of orig array
# appends mirror image of original array on orig

result = []

list.length.times do |i|
result << list[i]
end

rev = -1
list.length.times do
result << list[rev]
rev -= 1
end

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This works and is easy to follow, but if requires iterating through the list twice. Can you think of a way to do this only iterating through the list once? (check the solutions branch for my solution)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Revision looks good!


return result
end

# testing = [1,3,2,7]
# puts mirror(testing)


# problem 2


def switchPairs(list)

result = []

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This solution was supposed to modify the array in place, not create a new copy of the array.


i = 0
how_many_times = list.length/2
how_many_times.times do
first = list[i]
second = list[i+1]
result << second
result << first
i += 2
end

if list.length % 2 == 1
result << list[-1]
end

return result
end

# testing1 = ["four", "score", "and", "seven", "years", "ago"]
# testing2 = ["to", "be", "or", "not", "to", "be", "hamlet"]

# puts "first"
# puts switchPairs(testing1)
# puts "second"
# puts switchPairs(testing2)