py_echo_validator
Código comentado línea a línea y paso a paso:
Entregas: py_echo_validator.py con echo_validator(text). Rank 03 · nivel 2.
Qué pide (en palabras normales)
- ¿Es palíndromo mirando solo las letras, sin distinguir mayúsculas?
"A man a plan a canal Panama"→ True. - Cadena vacía → False (lo dicen los ejemplos).
Subject (enunciado original)
Write a function that checks if a string is a palindrome,
ignoring spaces and case, only consider alphabetic characters
for the comparison.
Expected file: py_echo_validator.py
Function signature:
def echo_validator(text: str) -> bool:
Examples:
echo_validator("racecar")
=> True
echo_validator("A man a plan a canal Panama")
=> True
echo_validator("race a car")
=> False
echo_validator("Was it a car or a cat I saw")
=> True
echo_validator("hello")
=> False
echo_validator("Madam Im Adam")
=> True
echo_validator("")
=> False
Solución
letters = [ch.lower() for ch in text if ch.isalpha()]
if not letters:
return False
return letters == letters[::-1]
Limpio, y comparo con el reverso. Tres líneas y un caso especial.
Trampas
- El vacío: sin el
if,[] == []devuelve True y suspendes ese test. Léete siempre los ejemplos: a veces contradicen la intuición. isalpha(), no!= " ": el subject dice "solo caracteres alfabéticos", así que dígitos y signos también se quitan.