Skip to content

Instantly share code, notes, and snippets.

@afghl
Last active August 28, 2016 06:23
Show Gist options
  • Save afghl/ef63a740c252d3c0d5a748affbfdc530 to your computer and use it in GitHub Desktop.
Save afghl/ef63a740c252d3c0d5a748affbfdc530 to your computer and use it in GitHub Desktop.
# http://group.jobbole.com/22681/?utm_source=blog.jobbole.com&utm_medium=sidebar-group-topic
def test_str(str)
str_arr = str.split ''
if has_continuous_char(str_arr) || has_pattern(str_arr)
'Dislikes'
else
'Likes'
end
end
def has_continuous_char(a)
a.each_index do |i|
return true if a[i] == a[i - 1]
end
false
end
def has_pattern(a)
guesses = iterator a
guesses.any? { |g| g.length >= 4 }
end
def iterator(a, guesses = [''], old_chars = [])
return guesses unless c = a.first
guesses.map! do |guess|
if can_add_to_guess?(guess, c)
guess += c
else
guess
end
end
old_chars.each do |old_c|
guesses.push "#{old_c}#{c}"
end
iterator a.drop(1), guesses.uniq, old_chars.push(c)
end
def can_add_to_guess?(guess, c)
l = guess.length
l == 0 ||
l == 1 ||
l == 2 && c == guess[0] ||
l == 3 && c == guess[1]
end
p test_str('ASDSALIAA')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment