Palindromen zijn woorden, getallen of zinnen die hetzelfde lezen van links naar rechts als van rechts naar links. Voorbeelden van palindromische woorden in het Nederlands zijn kok, pap, lepel, droomoord, meetsysteem, legovogel en parterretrap. De term nemordnilap (palindromen maar dan gespeld van rechts naar links) wordt gebruikt voor woorden die een verschillend woord opleveren als ze van rechts naar links gespeld worden. Volgens taalkundige Dmitri A. Borgmann werd deze term geïnitieerd door Martin Gardner in Oddities and Curiosities of Words and Literature.
Schrijf een functie woordenboek waaraan de naam van een tekstbestand moet doorgegeven worden. Dit tekstbestand bevat een reeks woorden, elk op een afzonderlijke regel. De functie moet een verzameling van alle woorden in het opgegeven bestand teruggeven. Hierbij moet eventuele witruimte vooraan en achteraan elke regel verwijderd worden, en moeten alle hoofdletters in de woorden omgezet worden naar hun corresponderende kleine letter.
Schrijf een functie nemordnilap waaraan twee argumenten moeten doorgegeven worden: een woord en een verzameling van woorden. Bij de woorden in de gegeven verzameling moeten alle hoofdletters omgezet zijn naar hun corresponderende kleine letter. De functie moet een Booleaanse waarde teruggeven die aangeeft of het gegeven woord al dan niet een nemordnilap is. Een woord wordt enkel beschouwd als een nemordnilap als de volgende voorwaarden voldaan zijn:
het woord komt voor in de gegeven verzameling van woorden
het omgekeerde woord (woord gelezen van rechts naar links) komt voor in de gegeven verzameling van woorden
het woord is geen palindroom
Bij onderstaande voorbeeldsessie gaan we ervan uit dat het bestand woorden.txt1 zich in de huidige directory bevindt.
>>> woorden = woordenboek('woorden.txt')
>>> len(woorden)
321115
>>> nemordnilap('droom', woorden)
True
>>> nemordnilap('regel', woorden)
True
>>> nemordnilap('koorts', woorden)
True
>>> nemordnilap('rotsen', woorden)
True
>>> nemordnilap('hefboom', woorden)
False