Lectura
¿Alguna vez te has preguntado si un número es palíndromo? Un número palíndromo es un número que se lee igual de izquierda a derecha que de derecha a izquierda. Por ejemplo, 121, 1001 y 929 son números palíndromos.
El algoritmo a realizar consiste en revertir el número y compararlo con el número original. Si los dos números son iguales, entonces el número original es un palíndromo.
Para este ejercicio, vamos a verificar si un número es palíndromo y como condición particular no vamos a convertir los integer en strings.
Explicación del ejercicio Paso por paso
Código de la solución
Java
class Solution {
public boolean isPalindrome(int x) {
if (x < 0 || (x % 10 == 0 && x != 0)) {
return false;
}
int original = x;
int invertido = 0;
while (x > 0) {
int ultimoDigito = x % 10;
invertido = (invertido * 10) + ultimoDigito;
x /= 10;
}
return original == invertido;
}
}
Python
class Solution(object):
def isPalindrome(self, x):
if x < 0 or (x % 10 == 0 and x != 0):
return False
original = x
invertido = 0
while x > 0:
ultimo_digito = x % 10
invertido = (invertido * 10) + ultimo_digito
x //= 10
return original == invertido
PHP
class Solution {
/**
* @param Integer $x
* @return Boolean
*/
function isPalindrome($x) {
if ($x < 0 || ($x % 10 === 0 && $x !== 0)) {
return false;
}
$original = $x;
$invertido = 0;
while ($x > 0) {
$ultimoDigito = $x % 10;
$invertido = ($invertido * 10) + $ultimoDigito;
$x = intdiv($x, 10);
}
return $original === $invertido;
}
}
C++
class Solution {
public:
bool isPalindrome(int x) {
if (x < 0 || (x % 10 == 0 && x != 0)) {
return false;
}
long original = x;
long invertido = 0;
while (x > 0) {
int ultimoDigito = x % 10;
invertido = (invertido * 10) + ultimoDigito;
x /= 10;
}
return original == invertido;
}
};
JavaScript
/**
* @param {number} x
* @return {boolean}
*/
var isPalindrome = function(x) {
if (x < 0 || (x % 10 === 0 && x !== 0)) {
return false;
}
let original = x;
let invertido = 0;
while (x > 0) {
let ultimoDigito = x % 10;
invertido = (invertido * 10) + ultimoDigito;
x = Math.floor(x / 10);
}
return original === invertido;
};
Si te gustó el contenido, ¡visita mi canal de YouTube para ver más explicaciones sobre algoritmos y estructuras de datos!