Skip to content

Instantly share code, notes, and snippets.

@alekst
alekst / count_elements
Created August 29, 2013 13:32
Counts a number of identical elements within an array (word), returns them as a hash (counts). # {"foo" => 2, "bar" => 1}
def word_count
counts = Hash.new(0)
words.each do |word|
counts[word] += 1
end
return counts
end
@alekst
alekst / anagram
Last active December 22, 2015 05:58
class AnagramTest < MiniTest::Unit::TestCase
class Anagram
def initialize(word)
@word = word
@anagram = Array.new
end
def match(candidates)
candidates.each do |candidate|
@alekst
alekst / anagram.rb
Created September 3, 2013 21:51 — forked from shepmaster/anagram.rb
class AnagramTest < MiniTest::Unit::TestCase
class Anagram
def initialize(word)
@word = word
# If you create the array here, then the results will be
# collected over multiple calls to `match`. Not sure if that is
# intended or not, so I'll assume it's ok to change.
end
class AnagramTest < MiniTest::Unit::TestCase
class Anagram
def initialize(word)
@word = word
@anagram = Array.new
end
def match(candidates)
@alekst
alekst / dna.rb
Last active December 22, 2015 11:09
class DNATest < MiniTest::Unit::TestCase
class DNA
def initialize(string)
@string = string
@counts = {"A"=> 0, "T" => 0, "C"=> 0, "G"=> 0}
dna_validation
end
def count(element)
@alekst
alekst / dna.rb
Created September 6, 2013 15:40 — forked from shepmaster/dna.rb
class DNATest < MiniTest::Unit::TestCase
# You don't have to put your classes inside of the test case, but it
# doesn't hurt for these examples
class DNA
def initialize(string)
@string = string
# You can provide a default value for hashes. This also avoids
# hardcoding the letters here.
@counts = Hash.new(0)
@alekst
alekst / dna.rb
Created September 9, 2013 15:34
a code to find the number of different links in two strands of DNA. Done for exercism.io.
class DNATest < MiniTest::Unit::TestCase
class DNA
def initialize(strand) #initializes the original strand
@strand = strand
end
def hamming_distance(sample) # compares it to sample
0 if sample.empty? # returns 0 if sample DNA is empty
@strand = split(@strand) # splits the orginal DNA strand into an array
sample = split(sample) # splits the sample DNA strand into an array
@alekst
alekst / phone-number.rb
Created September 9, 2013 19:46
A code submitted to exercism.io as a solution to the phone number tests.
class PhoneNumberTest < MiniTest::Unit::TestCase
class PhoneNumber
def initialize(number)
@number = number
end
def number
number = @number.gsub(/[^0-9]/i, '')
validates(number)
@alekst
alekst / gist:8650152
Created January 27, 2014 15:14
unless
irb(main):001:0> array = ["a", "b", "c"]
=> ["a", "b", "c"]
irb(main):002:0> unless array[0] == "b"
irb(main):003:1> array << "d"
irb(main):004:1> end
=> ["a", "b", "c", "d"]
irb(main):005:0>
class Numeric # converts numbers into letters
Alph = ("A".."Z").to_a
def alph
s, q = "", self
(q, r = (q - 1).divmod(26)) && s.prepend(Alph[r]) until q.zero?
s
end
end