[QUIZ] Word Chains (#65)

The three rules of Ruby Quiz:

1. Please do not post any solutions or spoiler discussion for this quiz until
48 hours have passed from the time on this message.

2. Support Ruby Quiz by submitting ideas as often as you can:

http://www.rubyquiz.com/

3. Enjoy!

Suggestion: A [QUIZ] in the subject of emails about the problem helps everyone
on Ruby Talk follow the discussion.

···

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

When someone asked for a set of exercises on Ruby Talk this week, one of the
answers was to check out the Code Katas by Dave Thomas. I'm a big fan of those
problems myself, so let's do one of them.

This week's quiz is to write a program that takes two words as program
arguments. The words will be the same length. Please also support a -d
command-line option that can be used to switch dictionary files (one word per
line), but it's fine to use a reasonable default for your system.

The output of your program is to be a word chain, printing one word per line.
The first word in the chain is the first argument to the program and the last
word is the other argument. All other words in the chain vary by exactly one
letter from the words surrounding it. If a chain can not be formed from the
arguments using the selected dictionary, print a simple error message.

Here are some sample runs of my solution, so you can see how chains look:

  $ ruby word_chain.rb work play
  work
  pork
  pory
  pony
  piny
  piky
  puky
  puly
  paly
  paty
  katy
  kath
  hath
  hash
  pash
  push
  puss
  poss
  post
  pout
  prut
  prat
  plat
  play
  $ ruby word_chain.rb lead gold
  lead
  load
  goad
  gold
  $ ruby word_chain.rb love hate
  love
  hove
  have
  hate

Aim for the shortest paths if you can find them (the above examples may not be
them) and fast running times.

Pardon me if I'm missing something, James, but wasn't this Quiz #44?

http://www.rubyquiz.com/quiz44.html

Tom

···

* On Feb 3 23:00, Ruby Quiz (ruby-talk@ruby-lang.org) wrote:

When someone asked for a set of exercises on Ruby Talk this week, one
of the answers was to check out the Code Katas by Dave Thomas. I'm a
big fan of those problems myself, so let's do one of them.

déjà vu?

http://www.rubyquiz.com/quiz44.html
(hope I am not violating rule #1)

<laughs> Boy I'm glad some of you are paying attention, because I'm obviously not!

Sorry, I get lots of duplicate ideas sent in. Looks like this is the first one I failed to catch.

I'll get a another quiz out later today...

James Edward Gray II

···

On Feb 3, 2006, at 8:15 AM, Thomas Kirchner wrote:

* On Feb 3 23:00, Ruby Quiz (ruby-talk@ruby-lang.org) wrote:

When someone asked for a set of exercises on Ruby Talk this week, one
of the answers was to check out the Code Katas by Dave Thomas. I'm a
big fan of those problems myself, so let's do one of them.

Pardon me if I'm missing something, James, but wasn't this Quiz #44?

Ruby Quiz - Word Chains (#44)

Patrick Hurley schrieb:

déjà vu?

Ruby Quiz - Word Chains (#44)
(hope I am not violating rule #1)

Haha!
The page turned!
I made once a submission to make a quiz to build regexp automatically to match a range of numbers.
JEG2 told meto look at quiz4 :wink:

errare humanum est

···

-
~waiting

<laughs> Boy I'm glad some of you are paying attention, because I'm
obviously not!

No problem - we appreciate the work you put in! Love the quizzes, even
if I'm usually quiet about them.

I'll get a another quiz out later today...

Shucks. I was hoping to do this one (avoiding the summary/solution, of
course) to make up for missing the last :wink:

Tom

···

* On Feb 3 23:20, James Edward Gray II (ruby-talk@ruby-lang.org) wrote:

My wife asked me a while back, "Hey, have you done a Su Doku quiz?" I'm only slightly embarrassed to admit that I had to go look to answer her. :slight_smile:

James Edward Gray II

···

On Feb 3, 2006, at 8:39 AM, Robert Retzbach wrote:

I made once a submission to make a quiz to build regexp automatically to match a range of numbers.
JEG2 told meto look at quiz4 :wink: