Menu
CoddyTech

Valid Palindrome

Tu reçois une chaîne de caractères s. Ne garde que ses lettres et ses chiffres, considère les majuscules et les minuscules comme la même lettre, et détermine si le résultat se lit de la même façon de gauche à droite et de droite à gauche. Retourne true si c’est le cas et false sinon.

Tous les autres caractères, tels que ., !, ?, :, ;, - ou _, sont ignorés. Si s ne contient aucune lettre ni aucun chiffre, il ne reste rien, et un texte vide est considéré comme un palindrome.

Fonction

isPalindrome(s: string) → boolean
sstring
le texte à vérifier, ponctuation comprise
Renvoieboolean
vrai si les lettres et les chiffres de s se lisent de la même façon dans les deux sens, sans tenir compte de la casse

Contraintes

  • 1 ≤ s.length ≤ 5 × 104
  • s contient des lettres anglaises, des chiffres et les signes de ponctuation . ! ? : ; - _, sans espaces.

Exemples

Entrée
s = "Was_it_a_car_or_a_cat_I_saw?"
Sortie
true
Explication
Supprimez les traits de soulignement et le point d’interrogation, puis mettez les majuscules en minuscules : vous obtenez wasitacaroracatisaw, qui est identique à l’envers.

lock icon+25 tests cachés à la soumission

challenge icon

Pour aller plus loin

Peux-tu déterminer cela avec une mémoire supplémentaire de O(1), sans créer de copie nettoyée de s ?

Réinitialiser le code
def isPalindrome(s):
    # Écrivez le code ici
Cas de test

Cas 1

Cas 2

Cas 3

Entrée

s = "Was_it_a_car_or_a_cat_I_saw?"

Attendu

true