Inspired by http://codekata.com/kata/kata19-word-chains/
The goal of this exercise is to create a program that solves word-chain puzzles.
A word chain is type of puzzle where the challenge is to build a chain of words, starting with one particular word and ending with another. Successive entries in the chain must all be real words, and each can differ from the previous word by just one letter.
For example, you can get from “cat” to “dog” using the following chain.
Cat -> cot -> cog -> dog
The objective of this exercise is to write a program that accepts start and end words and, using words from the dictionary, builds a word chain between them.
For bonus points, have your code check for and return the shortest word chain that solves each puzzle. For example, you can turn “lead” into “gold” in four steps (lead, load, goad, gold), and “ruby” into “code” in six steps (ruby, rubs, robs, rods, rode, code).
All words in the chain must be real words. Each word in the chain can only differ from the previous word by just one letter. Use the included dictionary.txt to build your word chains. Chose whichever language you are most comfortable in (bonus points if you choose to write it in Python :) ). Unit tests are strongly encouraged.