Size: 1281
Comment:
|
Size: 861
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 5: | Line 5: |
= Assignment 2: Word Ladder = | = Assignment 2: Ordered Word Ladders = |
Line 7: | Line 7: |
A ''word ladder'' is a sequence of words * which are in alphabetic order * each word in the sequence differs from its predecessor by * changing one letter, e.g. ''born→barn'' * adding or removing one letter, e.g. ''band→brand'' |
An ''ordered word ladder'' is an alphabetically-ordered sequence of words where each word in the sequence differs from its predecessor by: 1. changing one letter, e.g. ''barn→born'' 1. adding or removing one letter, e.g. ''band→brand'', or vice versa. |
Line 13: | Line 11: |
The following are examples of word ladders of different length (that could each easily be made longer): * ''big→bit→bat→boat'', length 4 * ''cold→cord→word→ward→warm'', length 5 * ''line→fine→five→dive→live→like→lake→take→bake→cake→came→fame'', length 12 |
The following are examples of word ladders of different length: * ''ban→bar→boar→boat→goat'', length 5 * ''cab→can→cane→dane→date→mate→mite→site→size'', length 9 |
Line 18: | Line 15: |
{{{ Your assignment is to write a program that computes the longest word chain(s) that can be built from a set of words given on stdin. The output of your program is the maximum length of all the word chains that can be built from the input words, together with all the word chains that have this length. You should also a complexity analysis (of time) using Big-oh notation. |
At the heart of the assignment is a function that compares 2 strings and returns ''true'' if the strings satisfy one of the 2 conditions above, and ''false'' otherwise. This function could have the signature: {{{#!cplusplus bool areOwl(char *, char *) |
Line 23: | Line 20: |
The following conditions apply to the input: * it may be empty * the words are alphabetically ordered, and must be lower case (''a-z'') * no word is more than 19 letters * there will be no more than 1000 words |
Write such a function. |
Contents
Assignment 2: Ordered Word Ladders
An ordered word ladder is an alphabetically-ordered sequence of words where each word in the sequence differs from its predecessor by:
changing one letter, e.g. barn→born
adding or removing one letter, e.g. band→brand, or vice versa.
The following are examples of word ladders of different length:
ban→bar→boar→boat→goat, length 5
cab→can→cane→dane→date→mate→mite→site→size, length 9
At the heart of the assignment is a function that compares 2 strings and returns true if the strings satisfy one of the 2 conditions above, and false otherwise. This function could have the signature:
1 bool areOwl(char *, char *)
Write such a function.