Skip to content

Instantly share code, notes, and snippets.

@RobertCam
RobertCam / max.rb
Created September 29, 2015 19:44
Find max number in an array
# Find the maximum
def maximum(arr)
max_val = arr[0]
arr.each do |num|
if num > max_val
max_val = num
end
end
max_val
end
@RobertCam
RobertCam / fizzbuzz.rb
Created September 29, 2015 20:48
FizzBuzz refactored code
def fizzbuzz(start, finish)
start = start.to_i
finish = finish.to_i
range = (start..finish)
for num in range
puts "FIZZBUZZ #{num}" if (num % 3==0)&&(num % 5==0)
puts "FIZZ #{num}" if num % 3==0
puts "BUZZ #{num} " if num % 5==0
puts num if (num % 3!=0)&&(num % 5!=0)
@RobertCam
RobertCam / renter.rb
Created September 29, 2015 21:47
Vancouver yuppie apartment method
# must be baller and either furnished or rent cheaper than 2100
def rent?(furnished, rent, baller)
baller && (furnished || rent < 2100)
end
puts rent?(true, 2000, true)
puts rent?(false, 2000, true)
puts rent?(true, 2500, true)
puts rent?(true, 2000, false)
puts rent?(true, 2500, false)
@RobertCam
RobertCam / shakil_the_dog.rb
Created September 29, 2015 22:49
Shakil the Dawg
puts "Shakil is barking, what will you do?"
answer = gets.chomp
while (answer != "go away") do
puts "what next?"
answer = gets.chomp
if answer == "woof"
puts "WOOF WOOF WOOF!"
elsif answer == "shakil stop"
puts "he stopped barking, good job dog whisperer"
@RobertCam
RobertCam / sort.rb
Created September 30, 2015 00:33
sort using bubblesort. Compare efficiency with array#sort method using benchmark
# Sort the array from lowest to highest
def bubblesort(arr)
n = arr.length
loop do
swapped = false
(n-1).times do |i|
if arr[i] > arr[i+1]
arr[i], arr[i+1] = arr[i+1], arr[i]
swapped = true
end
@RobertCam
RobertCam / merge_sort.rb
Created September 30, 2015 06:46
sort assignment using merge sort
def merge_sort(arr)
def merge(left_side, right_side)
result = []
left = 0
right = 0
loop do
break if right >= right_side.length && left >= left_side.length
if right >= right_side.length || (left < left_side.length && left_side[left] < right_side[right])
@RobertCam
RobertCam / debug01.rb
Created September 30, 2015 20:17
debug assignment
list = {'yvr' => 'Vancouver',
'yba' => 'Banff',
'yyz' => 'Toronto',
'yxx' => 'Abbotsford',
'ybw' => 'Calgary'}
# Why is it returning nil instead of first element of the list above
puts list.first
@RobertCam
RobertCam / count_letters.rb
Created September 30, 2015 22:09
Character Counting
def char_count(list)
letters = {}
list.each do |word|
word.split('').each { |letter| letters.has_key?(letter) ? letters[letter] += 1 : letters[letter] =1}
end
letters = letters.sort_by {|a,b| b}
letters.reverse!
print letters
end
@RobertCam
RobertCam / states_info.rb
Created October 1, 2015 04:12
States and Cities
@states = {
OR: 'Oregon',
FL: 'Florida',
CA: 'California',
NY: 'New York',
MI: 'Michigan'
}
@states[:WA]="Washington"
@states[:TX]="Texas"
@RobertCam
RobertCam / benchmark_with_block.rb
Created October 1, 2015 18:04
benchmark method using yield to pass block
def benchmark
start_time = Time.now
yield
end_time = Time.now
run_time = end_time - start_time
end
long_string = "apple"*100000000
stupid_math = 1 + 1 * 1000 - 54 * 345