Welke drie bands zitten verborgen in deze reeks woorden?
PINUP, BEIRUT, TELEVISED, JAPANNED, TRIBALISM
De drie bands zijn OASIS, QUEEN en NIRVANA. De band OASIS krijg je door telkens van de eerste letter van elk woord de voorgaande letter in het alfabet te nemen. De band QUEEN krijg je door telkens van de laatste letter van elk woord de volgende letter in het alfabet te nemen. De band NIRVANA krijg je door telkens de middelste letter(s) van elk woord te nemen. Woorden met een oneven aantal letters hebben één middelste letter en woorden met een even aantal letters hebben twee middelste letters.
We beschouwen woorden die bestaan uit één of meer hoofdletters en stellen die voor als strings (str).
Een selector is een functie (function) waaraan een woord $$w$$ moet doorgegeven worden en die een woord teruggeeft. Gevraagd wordt om de volgende selectors te definiëren:
Een selector voorganger die de voorgaande letter in het alfabet teruggeeft van de eerste letter van $$w$$. Hierbij veronderstellen we dat de letter A wordt voorafgegaan door de letter Z.
Een selector opvolger die de volgende letter in het alfabet teruggeeft van de laatste letter van $$w$$. Hierbij veronderstellen we dat de letter Z wordt gevolgd door de letter A.
Een selector midden die de middelste letter(s) van $$w$$ teruggeeft. Woorden met een oneven aantal letters hebben één middelste letter en woorden met een even aantal letters hebben twee middelste letters.
Een selector rondomsom die één hoofdletter teruggeeft die op de volgende manier bepaald wordt. Elke letter van het alfabet krijgt een waarde overeenkomstig zijn positie in het alfabet: A=0, B=1, C=2, …, Z=25. We tellen de waarden van alle letters van $$w$$ bij elkaar op en bepalen de rest na deling door 26. De letter met als waarde die rest, is de letter die door de selector teruggegeven wordt.
Definieer nu ook nog een functie verborgen waaraan twee argumenten moeten doorgegeven worden: i) een reeks (list of tuple) woorden en ii) een selector $$s$$. De functie moet het woord teruggeven dat bekomen wordt door alle letters samen te voegen die selector $$s$$ teruggeeft voor elk van de opeenvolgende woorden in de gegeven reeks.
>>> voorganger('PINUP')
'O'
>>> voorganger('BEIRUT')
'A'
>>> voorganger('TELEVISED')
'S'
>>> opvolger('PINUP')
'Q'
>>> opvolger('BEIRUT')
'U'
>>> opvolger('TELEVISED')
'E'
>>> midden('PINUP')
'N'
>>> midden('BEIRUT')
'IR'
>>> midden('TELEVISED')
'V'
>>> rondomsom('PYTHONS')
'G'
>>> rondomsom('STANCHED')
'O'
>>> rondomsom('ALGA')
'R'
>>> zwaartepunt('PYTHONS')
'P'
>>> zwaartepunt('STANCHED')
'E'
>>> zwaartepunt('ALGA')
'A'
>>> verborgen(['PINUP', 'BEIRUT', 'TELEVISED', 'JAPANNED', 'TRIBALISM'], voorganger)
'OASIS'
>>> verborgen(['PINUP', 'BEIRUT', 'TELEVISED', 'JAPANNED', 'TRIBALISM'], opvolger)
'QUEEN'
>>> verborgen(['PINUP', 'BEIRUT', 'TELEVISED', 'JAPANNED', 'TRIBALISM'], midden)
'NIRVANA'
>>> verborgen(('PYTHONS', 'STANCHED', 'ALGA', 'REBUS', 'NELLY', 'SUBJECTIVELY', 'ARABIA', 'ARMAMENT'), rondomsom)
'GORILLAZ'
>>> verborgen(('PYTHONS', 'STANCHED', 'ALGA', 'REBUS', 'NELLY', 'SUBJECTIVELY', 'ARABIA', 'ARMAMENT'), zwaartepunt)
'PEARLJAM'