Drop links or images here to add them to the editor.

Inleiding

Je kent misschien woordenslang, een taalspelletje waarmee sommige ouders hun kinderen wel eens entertainen tijdens lange autoritten. Spelenderwijs wordt de algemene kennis en de woordenschat van het kind gestimuleerd.

Het concept van dit spel is erg simpel. De eerste speler start met een willekeurig woord. Daarna moet elke speler om de beurt een woord bedenken dat voldoet aan twee voorwaarden:

1) het woord werd nog niet gebruikt in deze woordenslang;

2) het woord begint met de laatste letter van het woord van de vorige speler.

Het doel is om deze “slang” van woorden zo lang mogelijk te maken, al dan niet binnen een specifiek thema zoals dieren, voornamen, landen of steden, …

Doel

Het uiteindelijke doel van deze opgave is om een functie is_woordenslang(lijst) te schrijven. lijst is een lijst met woorden. Hierbij worden uitsluitend kleine letters gebruikt. lijst bevat steeds minstens één element.

Je functie gaat na of lijst voldoet aan de twee bovenstaande voorwaarden om te kunnen spreken van een woordenslang. Als dat het geval is, geeft je functie True terug.

Als lijst geen geldige woordenslang is, geeft je functie een tuple terug. Het eerste element is het aantal niet-toegelaten overgangen tussen woorden. Het tweede element van de tuple is het aantal keer dat woorden meer dan één keer werden gebruikt.

Opgave

1) Denk na over hoe je deze opgave zou kunnen oplossen. Schrijf je strategie uit in correct Nederlands. Je schrijft dus geen code, maar je gebruikt wel de terminologie die we in de les gebruikt hebben. Schrijf je antwoord in commentaar bovenaan je programma.

2) Zouden we voor de woordenslang een andere datastructuur kunnen gebruiken in de plaats van een lijst? Welke datastructuur is zeker niet geschikt? Verklaar je antwoord. Schrijf je antwoord in commentaar bovenaan je programma.

3) Implementeer de functie is_woordenslang(lijst) met een functionaliteit zoals die hierboven beschreven werd. Kijk naar de onderstaande voorbeelden.

Voorbeeld 1

Invoer:

> is_woordenslang(['maar', 'reeds', 'snel', 'lage', 'er'])

Uitvoer:

True

Voorbeeld 2

Invoer:

> is_woordenslang(['maar', 'reeds', 'snel', 'lage', 'er', 'reeds'])

Uitvoer:

(0, 1)

Voorbeeld 3

Invoer:

> is_woordenslang(['liever', 'reeds', 'sterk', 'eten', 'nemen'])

Uitvoer:

(1, 0)

Voorbeeld 4

Invoer:

> is_woordenslang(['kat', 'boom', 'kat', 'appel', 'boom', 'kat'])

Uitvoer:

(5, 3)