← Back to challenges

Fit the Words Together

PythonHardalgorithmsloopsstrings

Instructions

You are given a list of 9 7-letter words. You are also given the middle letter of one of the 6 of them which fit together in a sort of star pattern as follows:

Word 1 fits diagonally downwards from left to right. Its 1st letter is the last letter of word 5; 3rd letter the 5th of word 3;last letter the last letter of word 4.

Word 2 fits diagonally downwards from left to right. Its 1st letter is the 1st letter of word 3; 5th letter the 3rd of word 4; last letter the 1st of word 6.

Word 3 fits horizontally from left to right. Its 1st letter is the 1st of word 2; 3rd the 5th of word 5; 5th the 3rd of word 1; last the last of word 6.

Word 4 fits horizontally from left to right. Its 1st letter is the 1st of word 5; 3rd the 5th of word 2; 5th the 3rd of word 6; last the last of word 1.

Word 5 fits diagonally upwards from left to right. Its 1st letter is the 1st letter of word 4; 5th the 3rd letter of word 3; last the 1st of word 1.

Word 6 fits diagonally upwards from left to right. Its 1st letter is the last of word 2; 3rd the 5th of word 4; last the last of word 3.

Write a function which takes in a list of 9 7-letter words and number of one of the words and its middle letter and outputs a list of the 6 words which fit together as above, ordered as words 1 to 6 as described. For some tests there may be more than 1 correct answer - any will be accepted.

Examples

fit_words(["crudity", 'reactor', 'grammar', 'bromide', 'aridity', 'airport', 'trilogy', 'rhizome', 'barrier' ],(3,'d')) --> ['rhizome', 'airport', 'aridity', 'bromide', 'barrier', 'trilogy']

fit_words(['station', 'freezer', 'sulfate', 'portion', 'trilogy', 'typhoon', 'solvent', 'episode', 'steeple' ],(3,'e')) --> ['typhoon', 'sulfate', 'steeple', 'station', 'solvent', 'episode']

Notes

Words are numbered from 1 (so the clue word in each of the examples is the 3rd word)

Case may be ignored - all test words are lower case.

python3
Loading editor…
to run
Walks through the solution with reasoning and edge cases.