Determina si un número entero es un palíndromo. Haga esto sin espacio adicional.
Pensamientos
Los problemas relacionados con los números se resuelven con frecuencia mediante / y%. No se requiere espacio adicional. Este problema es similar al problema del entero inverso.
Nota: aquí no hay espacio adicional significa que no convierta el número entero en una cadena, ya que la cadena será una copia del número entero y ocupará espacio adicional. El espacio ocupado por div, left y right se puede ignorar.
Solución Java
public class Solution { public boolean isPalindrome(int x) { //negative numbers are not palindrome if (x < 0) return false; // initialize how many zeros int div = 1; while (x / div >= 10) { div *= 10; } while (x != 0) { int left = x / div; int right = x % 10; if (left != right) return false; x = (x % div) / 10; div /= 100; } return true; } } |