Verificador de Palíndromos

Um palíndromo é lido da mesma forma de frente para trás. “Madam” é fácil; “Um homem, um plano, um canal: Panamá” leva um momento para identificar porque depende de ignorar pontuação e espaços. Esta ferramenta normaliza o que você cola, convertendo para minúsculas, removendo espaços e pontuação, e confirma se o resultado é um verdadeiro palíndromo, além de mostrar a string invertida lado a lado.

Como a verificação funciona

  1. 1

    Cole texto ou número

    Uma única palavra, uma frase, uma longa sentença ou uma string numérica.

  2. 2

    Normalização aplicada

    O texto é convertido para minúsculas e tudo o que não é uma letra ou dígito (espaços, pontuação, símbolos) é removido. Cada letra Unicode é mantida como está, então os acentos contam e as escritas não latinas também funcionam.

  3. 3

    Comparar frente vs reverso

    Se a string normalizada corresponder à sua reversa, é um palíndromo.

  4. 4

    Inspecione o resultado

    A ferramenta mostra tanto as strings brutas quanto as normalizadas, invertidas, para verificação.

Exemplos clássicos de palíndromos

Texto Tipo
madam Palavra única
level Palavra única
racecar Palavra única
A man, a plan, a canal: Panama Frase (inglês)
Ame o poema Frase em português
reviver Palavra em português
12321 Número
Never odd or even Frase (inglês)

Categorias de palíndromos

  • Palíndromos de caracteres. O padrão, mesmas letras para frente e para trás, ignorando espaços.
  • Palíndromos de palavras. “Eu fiz, fiz eu”, cada palavra espelhada como uma unidade.
  • Semordnilaps. Palavras que formam uma palavra diferente quando invertidas: em inglês “stressed” → “desserts.”
  • Palíndromos numéricos. Qualquer sequência de dígitos que é lida da mesma forma em ambas as direções: 1991, 1881.
  • Palíndromos genômicos. Sequências de DNA onde uma região é lida da mesma forma em ambas as fitas (relevante para enzimas de restrição).

Programando a verificação

A lógica central em pseudocódigo:

function isPalindrome(s):
    normalized = lowercase(s)
    normalized = removeAll(normalized, /[^\p{L}\p{N}]/u)   // mantém letras e dígitos de qualquer escrita
    return normalized == reverse(normalized)

Esta é uma pergunta padrão de aquecimento em entrevistas. Variações adicionam casos extremos: ignorar marcas de combinação unicode, lidar com strings vazias, suportar emojis, respeitar clusters de grafemas.

Variações comuns na regra

  • Modo estrito: contar cada caractere, incluindo espaços e pontuação. "aba" passa; "um homem um plano" falha.
  • Apenas alfanuméricos: remover tudo o mais. A maioria das verificações casuais de palíndromos usa isso.
  • Normalização Unicode: alguns verificadores mesclam formas acentuadas (NFKD) antes de comparar, de modo que “café” corresponda a “éfac”.

Esta ferramenta usa a abordagem apenas de letras e dígitos: converte para minúsculas, mantém cada letra e dígito Unicode (de qualquer escrita, incluindo os acentos do português) e descarta o resto. Ela não mescla os acentos, então uma letra acentuada precisa corresponder à mesma letra acentuada para o texto ser um palíndromo. Não há um botão de “modo estrito”.

Perguntas frequentes

Sim. Qualquer caractere único é trivialmente um palíndromo, ele é igual a si mesmo invertido. A maioria das definições pedagógicas requer pelo menos três caracteres para ser interessante, mas a definição matemática aceita comprimento 1 e até comprimento 0 (a string vazia).

Trate-os como strings de dígitos. 121, 12321 e 1991 são palíndromos numéricos. Para inteiros grandes, verifique a representação em string; não tente inverter o número aritmeticamente, o que perde zeros à esquerda.

Em inglês, uma composição séria é “Um Homem, um Plano, um Canal: Panamá” e suas muitas extensões, os palíndromos gerados por computador de Peter Norvig ultrapassam 17.000 palavras, embora nenhum seja gramatical. O palíndromo de uma única palavra mais longo em inglês citado pelo Guinness é “tattarrattat” (Joyce, Ulysses).

Sim, em todas as línguas. O finlandês “saippuakivikauppias” (vendedor de pedra-sabão, 19 letras) é frequentemente citado como o palíndromo de uma única palavra mais longo que ocorre naturalmente em qualquer língua.

Ferramentas relacionadas

Ferramenta disponível em outros idiomas