Last active
March 1, 2016 16:06
-
-
Save tjhanley/5072970 to your computer and use it in GitHub Desktop.
Simple Problems
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| def add_1_to_n(n) | |
| return n <= 0 ? 0 : n + add_1_to_n( n - 1 ) | |
| end | |
| puts add_1_to_n(10) #=> 55 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # create a function that generates a deck of cards | |
| # a deck has many suits | |
| # a suit has many cards | |
| # a card has a suit and a rank | |
| suits = %w{ C D H S } | |
| ranks = [ *2..10, *%w{ J Q K A } ] #splat | |
| card_deck = suits.product(ranks).shuffle | |
| card_deck.first(13) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ary = ["A", "B", "C", "B", "A"] | |
| #ary.group_by { |e| e }.select { |k, v| v.size > 1 }.map(&:first) | |
| # | |
| #ary.sort.chunk { |e| e }.select { |e, count| count.size > 1 }.map(&:first) | |
| ary.select { |e| ary.count(e) > 1 }.uniq |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 100.times do |n| | |
| str = '' | |
| str += 'Fizz' if n % 3 === 0 | |
| str += 'Buzz' if n % 5 === 0 | |
| puts str.length > 1 && str || n | |
| end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| def palindrome?(value) | |
| if value.kind_of? String | |
| value.eql?(value.to_s.reverse) | |
| elsif value.kind_of? Integer | |
| value.eql?(value.to_s.reverse.to_i) | |
| else | |
| puts "not a string or integer" | |
| return false | |
| end | |
| end | |
| #irb(main):028:0> palindrome?('racecar') | |
| #=> true | |
| #irb(main):029:0> palindrome?('liam') | |
| #=> false | |
| #irb(main):030:0> palindrome?(121) | |
| #=> true | |
| #irb(main):031:0> palindrome?(122) | |
| #=> false | |
| #irb(main):032:0> palindrome?(1221) | |
| #=> true | |
| #irb(main):033:0> palindrome?([1233]) | |
| #not a string or integer | |
| #=> false |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| require 'set' | |
| set = Set.new([1,2,3]) | |
| result = Set.new(set) #1,2,3 | |
| result << Set.new() # {} | |
| class Set | |
| def pop | |
| temp = self.to_a.pop | |
| self.delete(temp) | |
| temp | |
| end | |
| end | |
| set.each do |e, index| | |
| while set.size >= 1 do | |
| last_element = set.pop() #=>3 | |
| result << last_element #=> {3}, {2}, {1} | |
| set.each do |e| | |
| result << Set.new([e,last_element]) | |
| end | |
| end | |
| end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # convert array of tuples to hash | |
| # [['a',1], ['b',2], ['c','3' ]] | |
| # with values as ints | |
| # {"a"=>1, "b"=>2, "c"=>3} | |
| a = [['a',1], ['b',2], ['c','3' ]] | |
| h = Hash[*a.flatten] | |
| #=> {"a"=>1, "b"=>2, "c"=>"3"} | |
| h.each do |k,v| | |
| h[k] = v.to_i | |
| end | |
| #=> {"a"=>1, "b"=>2, "c"=>3} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment