0Pricing
Competitive Programming Academy · Aula

Verificações Corretas de Palíndromos

Compare as duas extremidades com eficiência.

Verificações Corretas de Palíndromos é uma aula grátis de Competitive Programming Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Competitive Programming Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Competitive Programming Academy inclui 4 aulas no total.

O que é um palíndromo

Um palíndromo é lido da mesma forma para a frente e para trás, como em arara ou reviver. Verificar se algo é um palíndromo é um clássico problema introdutório. 🔁

O truque da fatia

O Python pode inverter uma cadeia de caracteres usando a fatia s[::-1]. Compare-a com a original e você terá uma verificação em uma única linha.

s = 'level'
print(s == s[::-1])  # True

A fatia exige memória extra

A abordagem com fatia é curta, mas cria uma cópia completa invertida. Para cadeias enormes, essa memória adicional pode ser importante sob limites rigorosos.

O método dos dois ponteiros

Coloque um ponteiro no início e outro no final. Compare-os e avance ambos para o centro. Isso usa espaço extra O(1).

i, j = 0, len(s) - 1
while i < j:
    if s[i] != s[j]:
        break
    i += 1; j -= 1

Parar no meio

Os ponteiros só precisam se encontrar na metade do caminho. Quando i não é menor que j, todos os pares foram iguais e a cadeia é um palíndromo.

Uma diferença significa parar cedo

O laço com dois ponteiros pode retornar False no instante em que um par for diferente. Raramente é necessário percorrer a cadeia inteira, o que proporciona um bom ganho de velocidade.

def is_pal(s):
    i, j = 0, len(s) - 1
    while i < j:
        if s[i] != s[j]: return False
        i += 1; j -= 1
    return True

Ambos são O(n)

De qualquer forma, cada caractere é acessado no máximo uma vez, portanto ambos os métodos funcionam em tempo linear. A única diferença está na memória extra utilizada.

Normalizar primeiro

Muitos problemas ignoram maiúsculas, minúsculas e espaços. Limpe a cadeia primeiro, convertendo-a para minúsculas e mantendo apenas letras e dígitos.

raw = 'A man, a plan'
clean = ''.join(c.lower() for c in raw if c.isalnum())

Depois, verificar a cadeia limpa

Depois de normalizar, execute a verificação usual de palíndromo na versão limpa. Esse é o padrão para palíndromos em frases.

print(clean == clean[::-1])

Os ponteiros ignoram caracteres que não são letras

Em vez de limpar primeiro, dois ponteiros podem pular qualquer caractere não alfanumérico diretamente na cadeia. Assim, você evita criar uma segunda cadeia por completo.

Palíndromos em subcadeias

Problemas mais difíceis perguntam sobre subcadeias palindrômicas. A ideia central é expandir a partir do centro: avance para fora de cada posição enquanto as extremidades forem iguais.

Verificação rápida

Uma pergunta sobre verificações de palíndromos.

Recapitulação

Agora você consegue verificar palíndromos com uma rápida fatia ou com dois ponteiros que usam pouca memória, além de normalizar entradas complexas antes do teste. 🎉

Perguntas Frequentes

A aula “Verificações Corretas de Palíndromos” é grátis?

Sim — o texto completo de “Verificações Corretas de Palíndromos” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Competitive Programming Academy, atualize para CoddyKit PRO. O curso de Competitive Programming Academy inclui 4 aulas no total.

O que vou aprender em “Verificações Corretas de Palíndromos”?

Compare as duas extremidades com eficiência. Você pratica Competitive Programming Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Competitive Programming Academy?

Nenhuma experiência prévia é necessária. Competitive Programming Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Verificações Corretas de Palíndromos”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Competitive Programming Academy?

Sim. Cada aula de Competitive Programming Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Truques com Caracteres, ord e chr
  2. Conte Letras com uma Tabela de Frequência
  3. Verificações Corretas de Palíndromos
  4. Divida, Remova Espaços e Reuna Palavras
← Voltar para Competitive Programming Academy