Het woord LOVE vertoont een perfecte symmetrie: de letters zijn immers gelijkmatig gepositioneerd ten opzichte van het midden van het alfabet.
We zeggen dat de liefde tussen de letters van het woord wederzijds is als aan deze voorwaarde voldaan is.
Bepaal of de liefde tussen de letters van een woord wederzijds is. Hiervoor ga je als volgt te werk:
Schrijf een functie posities waaraan een woord $$w$$ (str) moet doorgegeven worden. De functie moet een tuple teruggeven met de positie in het alfabet (int) van elke letter in woord $$w$$. Hierbij staat de letter A op positie 0 in het alfabet, de letter B op positie 1, …, en de letter Z op positie 25. De functie mag hierbij geen onderscheid maken tussen hoofdletters en kleine letters, en alle karakters van woord $$w$$ die geen letter zijn, moeten genegeerd worden.
Schrijf een functie iswederzijds waaraan twee argumenten moeten doorgegeven worden: i) een reeks (list of tuple) natuurlijke getallen (int) en ii) een even getal $$n \in \mathbb{N}_0$$ (int). Je mag ervan uitgaan dat voor elk getal $$i$$ in de reeks geldt dat $$0 \leq i < n$$, zonder dat dit expliciet moet gecontroleerd worden. De functie moet een Booleaanse waarde (bool) teruggeven die aangeeft of de getallen in de reeks per twee kunnen gegroepeerd worden, zodat elk paar getallen symmetrisch gepositioneerd is ten opzichte van het midden van de getallenreeks $$0, 1, 2, \ldots, n - 1$$.
Schrijf een functie wederzijdse_liefde waaraan een woord $$w$$ (str) moet doorgegeven worden. De functie moet een Booleaanse waarde (bool) teruggeven die aangeeft of de liefde tussen de letters van woord $$w$$ wederzijds is. De functie mag hierbij geen onderscheid maken tussen hoofdletters en kleine letters, en alle karakters van woord $$w$$ die geen letter zijn, moeten genegeerd worden.
>>> posities('LOVE')
(11, 14, 21, 4)
>>> posities('mutual')
(12, 20, 19, 20, 0, 11)
>>> iswederzijds((11, 14, 21, 4), 26)
True
>>> iswederzijds([12, 20, 19, 20, 0, 11], 26)
False
>>> wederzijdse_liefde('LOVE')
True
>>> wederzijdse_liefde('mutual')
False