palindromes.py

Created by schraf

Created on September 08, 2018

912 Bytes

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))]