Retour aux défis
Facile 0 résolus 0 % de réussite

Nombre palindrome

Vérifiez si un nombre se lit de la même façon dans les deux sens.

Ce que vous allez apprendre

  • Inverser un nombre chiffre par chiffre
  • Comparer la valeur inversée à l'originale
  • Gérer les nombres négatifs et les zéros finaux

Problème

Décidez si les chiffres décimaux de n se lisent de la même façon de gauche à droite et de droite à gauche. Les nombres négatifs ne sont jamais des palindromes à cause du signe moins.

Implémentez is_palindrome_number(n).

Entrée

n : Le nombre à vérifier.

Sortie

Retournez true si le nombre est un palindrome, sinon false.

Contraintes

-10¹⁸ ≤ n ≤ 10¹⁸

Exemples

Exemple 1
Entrée :
n = 12321

Sortie attendue :
expected = True
Entrée :
long long n = 12321;

Sortie attendue :
bool expected = true;
Entrée :
long n = 12321;

Sortie attendue :
bool expected = true;

Explication

12321 inversé donne 12321.

Exemple 2
Entrée :
n = -121

Sortie attendue :
expected = False
Entrée :
long long n = -121;

Sortie attendue :
bool expected = false;
Entrée :
long n = -121;

Sortie attendue :
bool expected = false;

Explication

Le signe moins fait que « -121 » est différent de « 121- ».

Comment l'aborder

Essayez d'abord seul, puis ouvrez les indices un par un.

Indice 1

Un nombre négatif ne peut pas être un palindrome à cause du signe moins.

Indice 2

Compare les chiffres du nombre aux deux extrémités plutôt que de convertir inutilement.

Indice 3

Les nombres à un seul chiffre sont toujours des palindromes.

Complexité attendue

temps O(log n), espace supplémentaire O(1)

Références

Ce défi a été adapté pour CodeUtility. Suivez l'énoncé et les contraintes ci-dessus.

Apprenez des autres

Solutions de la communauté

Aucune solution publiée pour l'instant. Résolvez ce défi pour partager la première.