Een populaire puzzel, die men vaak in kranten terug kan vinden, is de woordzoeker. Een aantal letters wordt gegeven en de vraag is vervolgens hoeveel (van de gegeven) woorden gevormd kunnen worden met deze letters.

Foto door Alexandra Lowenthal op Unsplash.

Foto door Alexandra Lowenthal op Unsplash.

Gevraagd

Schrijf een functie aantal_woorden(letters, woorden) dat gegeven een lijst van letters en een lijst met woorden nagaat hoeveel van deze woorden gevormd kunnen worden met behulp van de letters.

Bestudeer grondig onderstaande voorbeelden:

Voorbeelden

>>> aantal_woorden(["B", "B", "E", "E", "U", "W"], ["EEUW", "WEB", "ROOS", "MAAN"])
2

Met de gegeven letters kan je namelijk de woorden "EEUW" en "WEB" vormen.

>>> aantal_woorden(["B", "E", "W", "G"], ["BEWEEG", "BOOG", "HOND", "DAK"])
0

Want met de gegeven letters kan je geen enkel opgegeven woorden maken.

Tip

Itereren over een woord werkt op dezelfde manier als bij een lijst:

woord = "EEUW"
for letter in woord:
   print(letter)

zou achtereenvolgens "E", "E", "U" en "W" afdrukken.

Bron

Gebaseerd op probleem Word Problem, Universiteit van Valladolid (UVa).