On vous donne une chaine de mots (séparés par des virgules) palindromes qui sont valides au Scrabble. Combien y en a-t-il ? Un intrus s’est caché parmi eux, le retrouver en créant une fonction intrus et en utilisant cette chaine en paramètre. Quelle est la vraie écriture de ce mot ? Faire la correction et vérifiez qu’il n’y a plus d’erreur.
Bien entendu, il est conseillé de créer à part une fonction palindrome qui permettra de vérifier si un mot est un palindrome ou non.
mots = "aa,ada,aga,ana,ara,asa,axa,bob,ere,ete,eue,eve,ewe,faf,gag,ici,lol,mmm,nan,non,oxo,pap,pep,pop,sas,ses,sis,sus,tat,tet,tot,tut,alla,elle,erre,esse,naan,reer,anona,aviva,coloc,etete,kanak,kayak,lebel,maqam,nanan,radar,rever,rotor,sagas,salas,sanas,sapas,saras,semes,senes,seres,seves,sexes,shahs,sidis,solos,sonos,stafs,stots,talat,tapat,tarat,tatat,taxat,sassas,selles,sennes,serres,taffat,taggat,tallat,tannat,tassat,nauruan,reifier,repiper,retater,semames,sememes,sereres,snobons,essayasse,malayalam,ressasser" # len(mots) donne 511 def palindrome(mot): return list(mot)==list(reversed(mot)) # m==m[::-1] ne fonctionne pas ici def intrus(mots): return list(filter(lambda m: not(palindrome(m)), mots.split(","))) # On trouve le mot "stafs" qui est en fait "stats" # Version 2 def intrusv2(mots): return [m for m in mots.split(",") if list(m)!=list(reversed(m))]