Questions de jeux de mots
Panama, tattarrattat, semordnilaps, et pourquoi inverser une chaîne est plus difficile qu'il n'y paraît.
« A man, a plan, a canal: Panama » est-il vraiment un palindrome ?+
Selon la lecture que tout le monde a en tête, oui. Retirez les majuscules, les espaces, les virgules et les deux-points, et il reste amanaplanacanalpanama, vingt et une lettres qui se lisent à l'identique dans les deux sens. Comparez la phrase exactement telle qu'elle est écrite et elle échoue immédiatement, car le premier caractère est un A majuscule et le dernier un a minuscule. Ce n'est pas un détail technique à cacher, c'est toute la raison pour laquelle cette page met la casse, les espaces et la ponctuation sur des interrupteurs et vous montre la chaîne qu'elle a réellement comparée. La phrase est généralement attribuée à Leigh Mercer, qui l'a publiée dans Notes and Queries en 1948. Parmi les membres plus longs de la même famille figurent « Doc, note: I dissent. A fast never prevents a fatness. I diet on cod. » et le poème palindrome de 224 mots de Demetri Martin, qui passent tous deux ici pour la même raison.
Quel est le plus long palindrome en anglais ?+
Tout dépend de ce que vous acceptez comme mot. Le plus long de l'Oxford English Dictionary est tattarrattat, douze lettres, inventé par James Joyce dans Ulysse pour un coup frappé à la porte. Les chimistes proposent detartrated, onze lettres. Le plus long des dictionnaires courants est généralement redivider, neuf lettres, avec rotator, reviver et deified à sept lettres chacun. Hors de l'anglais, le record est plus facile à battre : le finnois a saippuakivikauppias, dix-neuf lettres, un marchand de stéatite, et c'est un véritable mot composé plutôt qu'une invention. Les phrases entières vont bien plus loin, et la limite pratique tient à la patience plutôt qu'à la langue. Collez n'importe lequel de ces mots dans la zone et le panneau de la plus longue séquence vous confirmera le compte au lieu de vous demander de croire une liste sur parole.
Les espaces et la ponctuation comptent-ils ?+
Seulement si vous le décidez, et la réponse honnête est que les deux lectures sont légitimes. La lecture stricte traite le texte comme une suite de caractères et demande si cette suite est son propre inverse, ce qui signifie qu'un espace, une virgule et une majuscule sont des caractères comme les autres. La lecture souple traite le palindrome comme une propriété des lettres et jette le reste, ce qui rend possibles les palindromes de la taille d'une phrase. Cette page adopte par défaut la lecture souple, car c'est ce que les gens demandent quand ils tapent une phrase, et elle le précise dans le verdict : une phrase qui ne passe qu'une fois la ponctuation ignorée est signalée comme réussie en lecture souple au lieu d'être validée en silence. Les chiffres, les symboles et les emojis ne sont jamais supprimés par cet interrupteur, car ils font partie du contenu : 12321 est un palindrome et doit être signalé comme tel.
Qu'est-ce qu'un semordnilap ?+
Un mot qui en forme un autre quand on le lit à l'envers. Stressed devient desserts, drawer devient reward, diaper devient repaid, et le nom lui-même est le mot anglais palindromes écrit à l'envers. Ce n'est pas un palindrome, et c'est tout l'intérêt : un palindrome se lit de la même façon dans les deux sens, un semordnilap se lit comme autre chose. Cette page ne peut pas vous dire que vous en avez trouvé un, car il faudrait pour cela un dictionnaire, et il n'y a ici aucune liste de mots. Ce qu'elle fait, c'est afficher la chaîne inversée, qui est la seule partie pour laquelle un ordinateur est nécessaire. Lisez-la et jugez par vous-même. La même limite explique pourquoi le volet anagramme compare deux textes que vous fournissez au lieu de chercher les anagrammes d'un seul : chercher un réarrangement inconnu exige une liste de mots, et une liste de mots exige une langue, une norme orthographique et un débat sur les noms propres.
Les anagrammes tiennent-elles compte de la casse ?+
Par convention, non, et c'est exactement pour cette raison que cette page ignore la casse par défaut. Personne ne prétend que Listen et Silent ne sont pas des anagrammes parce que l'un des deux commence par une majuscule. Désactivez l'interrupteur de casse et la comparaison échoue, et vous pouvez voir pourquoi dans le tableau des écarts : le premier texte a en trop un L majuscule et un s minuscule, le second un S majuscule et un l minuscule, car pour un ordinateur un L majuscule et un l minuscule sont des caractères différents. Cette vue est parfois ce que vous voulez, par exemple pour vérifier si deux identifiants utilisent les mêmes caractères. La plupart du temps, ce n'est pas le cas, et c'est pourquoi l'insensibilité à la casse est activée par défaut. Les accents fonctionnent de la même façon : ignorez-les et résumé correspond à resume ; gardez-les et é est simplement une lettre différente de e.
Qu'est-ce qu'une anagramme parfaite ?+
Deux textes sont des anagrammes quand leurs lettres forment le même multiensemble : les mêmes lettres, chacune présente le même nombre de fois, seul l'ordre changeant. C'est la notion de multiensemble que l'on oublie. Une anagramme ne compare pas quelles lettres apparaissent, elle compare combien de fois chacune apparaît, et c'est pourquoi le tableau des écarts compte l'excédent au lieu de simplement lister des lettres. Une anagramme parfaite, parfois appelée vraie anagramme, est une anagramme où le second texte est un véritable réarrangement plutôt que le même texte répété, et cette page distingue ces deux résultats au lieu de répondre oui aux deux. Elle signale aussi le cas particulier où aucune lettre n'est répétée, comme dans Listen et Silent, qui est une permutation de six lettres distinctes. Les classiques valent l'essai : Eleven plus two et Twelve plus one utilisent les mêmes treize lettres et désignent le même nombre, et The Morse code se réarrange en Here come dots.
Quels mots peuvent être réarrangés en palindrome ?+
Il existe un test d'une ligne, et il ne demande d'essayer aucun réarrangement. Un multiensemble de lettres peut former un palindrome exactement quand au plus une lettre apparaît un nombre impair de fois. Toutes les autres lettres doivent se répartir par paires symétriques autour du centre, et la seule lettre impaire, s'il y en a une, est celle qui se place au milieu. Ainsi carrace fonctionne, car il contient deux c, deux a, deux r et un e, et le e va au milieu pour donner racecar. Silent ne fonctionne pas, car ses six lettres apparaissent chacune une fois et une seule d'entre elles peut occuper le centre. Cette page fait ce test de parité sur tout ce que vous tapez, nomme la lettre du milieu quand il y en a une et affiche un arrangement qui fonctionne, pour que vous puissiez vérifier l'affirmation au lieu de la croire sur parole.
Les emojis et les caractères accentués s'inversent-ils correctement ?+
Ici, oui, et il vaut la peine de savoir pourquoi ce n'est pas automatique. Les chaînes JavaScript sont des suites d'unités de code UTF-16, si bien que l'inversion habituelle en une ligne, qui découpe la chaîne en caractères puis inverse le tableau, corrompt tout ce qui n'est pas une seule unité de code. Un emoji est une paire de substitution et revient sous forme de deux moitiés invalides. Un drapeau, c'est deux indicateurs régionaux, et il revient sous forme d'un autre drapeau ou de rien du tout. Un é écrit comme un e suivi d'un accent aigu combinant revient avec l'accent attaché à la lettre qui le précède désormais. Parcourir les points de code à la place règle les deux premiers cas mais pas le troisième, et cela brise toujours une séquence ZWJ comme 🧑🚀 en une personne, un liant invisible et une fusée. Cette page segmente en groupes de graphèmes, les unités qu'un lecteur appellerait des caractères, si bien que les quatre cas survivent à l'aller-retour. Essayez 🧑🚀 Never odd or even 🧑🚀 dans la zone.
Comment l'outil trouve-t-il le plus long palindrome dans mon texte ?+
Avec l'algorithme de Manacher, qui trouve la plus longue sous-chaîne palindrome en un temps proportionnel à la longueur du texte. La méthode évidente consiste à traiter chaque position comme un centre possible et à s'étendre vers l'extérieur tant que les caractères correspondent, ce qui convient à de la prose ordinaire mais devient quadratique dans le pire des cas : une chaîne de dix mille lettres identiques fait s'étendre chaque centre presque jusqu'au bout. L'idée de Manacher est que les expansions déjà faites indiquent jusqu'où la suivante peut commencer, car un palindrome dans lequel on se trouve est un miroir et sa moitié gauche prédit sa moitié droite. L'implémentation de cette page intercale des séparateurs entre les caractères pour que les séquences de longueur paire et impaire soient trouvées par la même boucle, et elle a été vérifiée par comparaison avec une recherche exhaustive sur des milliers de chaînes aléatoires. C'est pourquoi la page n'a aucun plafond de taille pour cette réponse ni de mode de repli plus lent.
Quelle quantité de texte puis-je vérifier, et quelque chose quitte-t-il mon navigateur ?+
Chaque zone accepte jusqu'à 20,000 caractères, environ trois mille mots, et rien n'est envoyé nulle part. Il n'y a ni importation, ni requête, ni copie enregistrée : chaque compte de la page est calculé dans cet onglet par du simple JavaScript, ce qui explique aussi pourquoi la page peut dire qu'une chaîne est un palindrome mais jamais si c'est un mot. La limite existe pour éviter qu'un collage de plusieurs mégaoctets ne fige l'onglet pendant qu'il est découpé en caractères et dessiné, et non parce que les calculs seraient coûteux. Dans la limite, tout est linéaire : compter les lettres, comparer les deux tableaux de fréquence, tester la parité et trouver la plus longue séquence palindrome se font en une seule passe. Si vous avez besoin d'un texte plus long, votre question porte presque certainement sur une phrase à l'intérieur, alors collez celle-là.