Verificador de Palíndromo em Python (Usando Slicing de Strings)
Verificador de Palíndromo em Python (Usando Slicing de Strings)
Aprenda a verificar se uma palavra ou frase é um palíndromo — ou seja, se pode ser lida da mesma forma de trás para frente — utilizando o fatiamento (slicing) de strings no Python. Esta abordagem resolve o problema de validação de texto de forma extremamente performática e elegante, sem a necessidade de criar laços de repetição manuais.
Python
def eh_palindromo(texto: str) -> bool:
# Remove espaços, pontuações simples e padroniza para letras minúsculas
texto_limpo = "".join(c.lower() for c in texto if c.isalnum())
# Inverte a string com slicing e compara com o texto original
return texto_limpo == texto_limpo[::-1]
# Exemplos de uso prático
print(eh_palindromo("Arara")) # Retorna: True
print(eh_palindromo("A base do teto desaba")) # Retorna: True
print(eh_palindromo("Python")) # Retorna: False
Pontos-chave
- A sintaxe
[::-1]: O fatiamento (slicing) aceita os parâmetros[início:fim:passo]. Ao omitir o início e o fim e definir o passo como-1, o Python percorre a string inteira de trás para frente em velocidade nativa de C. - Tratamento com
isalnum()elower(): Para ignorar espaços, acentos/símbolos e diferenças entre maiúsculas e minúsculas, filtramos apenas caracteres alfanuméricos e convertemos a string para minúscula antes da comparação. - Performance superior: O operador de fatiamento
[::-1]é muito mais rápido e eficiente em memória do que inverter a string usando a funçãoreversed()combinada com"".join(). - Pegadinha com caracteres acentuados: A verificação simples com
isalnum()não remove acentos (ex: "Aí"). Para palíndromos complexos com acentuação, é necessário normalizar o texto antes usando a biblioteca nativaunicodedata.

Comentários
Postar um comentário