Voeg alternerend de letters van de woorden SHOE en COLD samen en je krijgt het woord SCHOOLED.

alternade
SHOE + COLD = SCHOOLED

Dezelfde procedure kan ook toegepast worden om de letters van drie woorden alternerend samen te voegen.

alternade
SIR + ILL + MAY = SIMILARLY

Het alternerend samenvoegen van de letters van een reeks woorden blijft ook niet beperkt tot woorden van dezelfde lengte. De algemene procedure neemt telkens de volgende letter van het volgende woord, waarbij na het laatste woord terug het eerste volgt. Als alle letters van een woord zijn opgebruikt, dan wordt dat woord genegeerd in de rest van de procedure. De procedure eindigt als alle letters van alle woorden zijn opgebruikt.

alternade
DEMO + RABAT = DREAMBOAT

Opgave

Definieer een klasse Woordrits waarmee de letters van een reeks woorden alternerend kunnen samengevoegd worden. De objecten van de klasse Woordrits moeten minstens over de volgende methoden beschikken:

Voorbereiding

Om na te gaan of een gegeven object een bepaald gegevenstype heeft, kan je natuurlijk gebruikmaken van de ingebouwde functie type(o) die het gegevenstype van het object o teruggeeft. Het is echter beter om hiervoor de ingebouwde functie isinstance(o, t) te gebruiken. Deze functie geeft een Booleaanse waarde terug die aangeeft of het object o al dan niet behoort tot het type t.

>>> type(3) == int
True
>>> isinstance(3.14, int)
False
>>> isinstance(3.14, float)
True
>>> isinstance([1, 2, 3], list)
True

Voorbeeld

>>> rits1 = Woordrits('SHOE')
>>> rits1.woorden
['SHOE']
>>> rits1
Woordrits('SHOE')
>>> print(rits1)
SHOE

>>> woorden = ['COLD']
>>> rits2 = Woordrits(woorden)
>>> rits2.woorden
['COLD']
>>> id(woorden) != id(rits2.woorden)
True
>>> rits2
Woordrits('COLD')

>>> rits3 = rits1 + rits2
>>> isinstance(rits3, Woordrits)
True
>>> rits3.woorden
['SHOE', 'COLD']
>>> rits3
Woordrits(['SHOE', 'COLD'])
>>> print(rits3)
SCHOOLED
>>> rits1
Woordrits('SHOE')
>>> rits2
Woordrits('COLD')
        
>>> rits4 = Woordrits('DEMO') + Woordrits('RABAT')
>>> rits4
Woordrits(['DEMO', 'RABAT'])
>>> print(rits4)
DREAMBOAT

>>> rits5 = Woordrits('SIR') + Woordrits('ILL') + Woordrits('MAY')
>>> rits5.woorden
['SIR', 'ILL', 'MAY']
>>> rits5
Woordrits(['SIR', 'ILL', 'MAY'])
>>> print(rits5)
SIMILARLY