Welk woord komt op de plaats van het vraagteken om deze woordenreeks af te werken?
Knalpot, Tegengas, Allebei, Wegrenner, Gewiebel, Lasagne, Getto, ?
De volledige woordenreeks vormt een palindroom: je krijgt dezelfde reeks letters als je de letters van de woorden van links naar rechts of van rechts naar links leest. Het ontbrekende woord is dus Plank:
Knalpot, Tegengas, Allebei, Wegrenner, Gewiebel, Lasagne, Getto, Plank
Bij dit soort raadsel moet je op het einde van een gegeven woordenreeks één woord aanvullen zodat de volledige woordenreeks een palindroom vormt. Het ontbrekende woord kan je vinden door eerst alle letters van de gegeven woorden achter elkaar te schrijven. Daarbij zet je alle letters om naar kleine letters, om geen onderscheid te maken tussen hoofdletters en kleine letters. We noemen dit de voorwaartse reeks:
knalpottegengasallebeiwegrennergewiebellasagnegetto
Daarna keer je de volgorde van de letters uit de voorwaartse reeks om. We noemen dit de achterwaartse reeks:
ottegengasallebeiwegrennergewiebellasagnegettoplank
Vervolgens zoek je de langste suffix van de voorwaartse reeks die ook een prefix is van de achterwaartse reeks. We hebben die langste gemeenschappelijke suffix/prefix hieronder in het groen aangeduid:
knalpottegengasallebeiwegrennergewiebellasagnegetto----- -----ottegengasallebeiwegrennergewiebellasagnegettoplank
Als je die langste gemeenschappelijke suffix/prefix als prefix weghaalt van de achterwaartse reeks, dan hou je het ontbrekende woord over. We hebben dat ontbrekende woord hierboven in het blauw aangeduid.
Een prefix van een woord $$w$$ bestaat uit een reeks van één of meer letters aan begin van $$w$$. Zo is appel bijvoorbeeld een prefix van appelboom.
Een suffix van een woord $$w$$ bestaat uit een reeks van één of meer letters op het einde van $$w$$. Zo is boom bijvoorbeeld een suffix van appelboom.
Schrijf de volgde vier functies waaraan telkens een woordenreeks $$W$$ (str) moet doorgegeven worden, waarvan de woorden enkel uit letters (hoofdletters of kleine letters) bestaan en van elkaar gescheiden worden door een komma (,) en een spatie. Op het einde van de woordenreeks ontbreekt één woord om tot een palindromische woordenreeks te komen.
Een functie voorwaartse_reeks die de voorwaartse reeks (str) van $$W$$ teruggeeft.
Een functie achterwaartse_reeks die de achterwaartse reeks (str) van $$W$$ teruggeeft.
Een functie gemeenschappelijke_reeks die de langste gemeenschappelijke suffix/prefix (str) van $$W$$ teruggeeft. Dit is de langste suffix van de voorwaartse reeks van $$W$$ die ook een prefix is van de achterwaartse reeks van $$W$$.
Een functie ontbrekend_woord die het ontbrekend woord (str) teruggeeft dat aan $$W$$ kan toegevoegd worden om een palindromische woordenreeks te vormen. Het ontbrekend woord moet geschreven worden als een hoofdletter gevolgd door kleine letters.
>>> voorwaartse_reeks('Knalpot, Tegengas, Allebei, Wegrenner, Gewiebel, Lasagne, Getto')
'knalpottegengasallebeiwegrennergewiebellasagnegetto'
>>> achterwaartse_reeks('Knalpot, Tegengas, Allebei, Wegrenner, Gewiebel, Lasagne, Getto')
'ottegengasallebeiwegrennergewiebellasagnegettoplank'
>>> gemeenschappelijke_reeks('Knalpot, Tegengas, Allebei, Wegrenner, Gewiebel, Lasagne, Getto')
'ottegengasallebeiwegrennergewiebellasagnegetto'
>>> ontbrekend_woord('Knalpot, Tegengas, Allebei, Wegrenner, Gewiebel, Lasagne, Getto')
'Plank'