Leetcode 7: número entero inversa

Tema: número entero inversa

Dado un entero con signo de 32 bits, el número entero se invierte.
Por ejemplo, al revés 321-123 123 -321 al revés
asume que nuestro entorno puede almacenar entero de 32 bits, que es el rango numérico [-231 231 a -1]. Bajo este supuesto, si el desbordamiento de enteros de inversión, se devuelve 0.

pensamiento

Para tomar más de 10 Resolviendo

  public int resverse(Integer x){
        long result = 0;
        while (x != 0) {
            result = result * 10 + x % 10;
            x /= 10;
        }
        if (result > Integer.MAX_VALUE || result < Integer.MIN_VALUE){
            result = 0;
        }
        return (int) result;
    }

Nota: resultado aquí se utiliza para almacenar el resultado de la inversión, el empleo de tipo long. (Si int, cuando x es demasiado grande, habrá un resultado de desbordamiento después de la inversión, por ejemplo, x = 1534236469,

Tras el resultado inverso debe ser 9646324351, pero Integer.MAX_VALUE = 2147483647, lo que resulta en un desbordamiento, el resultado final = 1056389759, no es el resultado que queremos
cuando se utiliza aquí el tiempo, el desbordamiento juez, devuelve un resultado = 0

Publicado 80 artículos originales · ganado elogios 140 · vistas 640 000 +

Supongo que te gusta

Origin blog.csdn.net/linjpg/article/details/104593473
Recomendado
Clasificación