Skip to content

Instantly share code, notes, and snippets.

@otang
Created November 21, 2014 05:20
Show Gist options
  • Save otang/b396d2bfcc4c2ea35380 to your computer and use it in GitHub Desktop.
Save otang/b396d2bfcc4c2ea35380 to your computer and use it in GitHub Desktop.
ko_segment()
def word_segment(list, word)
matched = false
list.each do |segment|
matched = false
test = word.gsub(segment, '')
if word != test
matched = true
end
word = test
end
!(word.length > 0)
end
def ko_segment(list, word)
index = 0
while list.length > 0 do
segment = list[index]
if word.match(/^#{segment}/)
word = word.gsub(/^#{segment}/, '')
list.delete(segment)
index = 0
else
if list.length-1 > index
index += 1
else
return false
end
end
end
true
end
puts 'word_segment()'
puts word_segment(["lo", "ser"], "loser") == true
puts word_segment(["lo", "ser"], "losloser") == false
puts word_segment(["ga"], "gaga") == true
puts word_segment(["o", "lo", "ser"], "losero") == true
puts ''
puts 'ko_segment()'
puts ko_segment(["lo", "ser"], "loser") == true
puts ko_segment(["lo", "ser"], "losloser") == false
puts ko_segment(["ga"], "gaga") == true
puts ko_segment(["o", "lo", "ser"], "losero") == true
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment