Een slingerwoord is een woord dat begint en eindigt met dezelfde $$n$$ letters (in dezelfde volgorde), voor een zekere $$n$$ groter dan nul maar kleiner dan de lengte van het woord. De maximale waarde $$n$$ waarvoor dat het geval is wordt de graad van het slingerwoord genoemd. Zo is bijvoorbeeld alfalfa een slingerwoord omdat de eerste en de laatste letter van het woord gelijk zijn. De graad van het slingerwoord alfalfa is echter niet 1 maar 4, omdat ook de eerste vier letters van alfalfa gelijk zijn aan de laatste vier letters.
De naam is afkomstig van het feit dat we herhalingen van een slingerwoord aan elkaar kunnen schakelen door de gemeenschappelijke eerste en laatste $$n$$ letters van twee opeenvolgende herhalingen slechts één keer te schrijven, waarbij $$n$$ de graad is van het slingerwoord.
Om die manier krijgen we bijvoorbeeld de volgende slinger van het woord alfalfa:
alfalfalfalfalfalfalfalfalfalfalfalfalfa…
Schrijf een functie graad waaraan een woord (str) moet doorgegeven worden. Als het gegeven woord een slingerwoord is, dan moet de functie de graad (int) van het slingerwoord teruggeven. Anders moet de functie de waarde 0 teruggeven.
Schrijf een functie slinger waaraan een woord (str) en een getal $$r \in \mathbb{N}$$ (int) moeten doorgegeven worden. De functie moet een string (str) teruggegeven die bestaat uit $$r$$ herhalingen van het gegeven woord. Indien het gegeven woord een slingerwoord is, dan moeten de gemeenschappelijke eerste en laatste $$n$$ letters van twee opeenvolgende herhalingen van het woord slechts één keer opgenomen worden, waarbij $$n$$ de graad is van het slingerwoord.
>>> graad('programmer')
0
>>> graad('ceramic')
1
>>> graad('onion')
2
>>> graad('alfalfa')
4
>>> slinger('programmer', 3)
'programmerprogrammerprogrammer'
>>> slinger('ceramic', 4)
'ceramiceramiceramiceramic'
>>> slinger('onion', 7)
'onionionionionionionion'
>>> slinger('alfalfa', 5)
'alfalfalfalfalfalfa'