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]) # TrueA 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 -= 1Parar 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 TrueAmbos 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
- Truques com Caracteres, ord e chr
- Conte Letras com uma Tabela de Frequência
- Verificações Corretas de Palíndromos
- Divida, Remova Espaços e Reuna Palavras