Een tekstbestand bevat een aantal regels, waarop woorden gescheiden door spaties te vinden zijn. In dit bestand komen enkel kleine letters, spaties en '\n-karakters voor. De bedoeling is om een woordenboek te construeren, met als sleutel elk van die woorden, en als bijhorende waarde een lijst van meest gelijkaardige woorden.

Om de gelijkenis tussen woorden vast te stellen, gebruiken we de Hammingafstand tussen twee woorden $$a$$ en $$b$$. Hiertoe vergelijken we elk karakter uit $$a$$ met het karakter op dezelfde positie in $$b$$, en tellen het aantal verschillende karakters. Indien de strings $$a$$ en $$b$$ van verschillende lengte zijn, dan wordt dit verschil vermeerderd met de absolute waarde van het verschil in lengte van $$a$$ en $$b$$.

Enkele voorbeelden:

hamming('test', 'test')     = 0
hamming('test', 'best')     = 1   # 1 letter  verschillend
hamming('best', 'asbest')   = 6   # 4 letters verschillend + 2 verschil in lengte
hamming('testen', 'best')   = 3   # 1 letter  verschillend + 2 verschil in lengte

Indien een woord meest gelijkend is met slechts 1 woord, dan moet de waarde dus een lijst zijn met slechts één woord. Indien er meerdere woorden zijn die evenveel gelijken op het sleutelwoord, dan een lijst met al die meest gelijkende woorden. De volgorde van de woorden moet gesorteerd worden via de ingebouwde sorted()-functie (die deze woorden alfabetisch opklimmend sorteert).

Bij het bepalen van gelijkenissen tussen woorden om meest gelijkende woorden te zoeken, wordt het woord zelf uitgesloten (anders zou je als meest gelijkend woord natuurlijk altijd het woord zelf vinden). Een welbepaald woord kan ook meerdere keren voorkomen in een bestand. In dit geval, kan het meerdere keren in een resultaatlijst voorkomen.

Voorbeeld

Inhoud van het bestand 'Tekst_0_in.txt':
maan ma maak maan
roos markt rok
resultaat van de functie gelijkend_woordenboek()
gelijkend_woordenboek('Tekst_0_in.txt') = 
{'ma': ['maak', 'maan', 'maan'], 'maak': ['maan', 'maan'], 
 'markt': ['maak'], 'roos': ['rok'], 'rok': ['roos'], 
 'maan': ['maak']}