JAVA-LeetCode simple 07

1. Título

Dado un entero de 32 bits con signo, es necesario invertir los dígitos de cada uno de los números enteros.
Ejemplo 1:

Entrada: 123
Salida: 321
Nota:

Suponiendo que nuestro entorno solo puede almacenar enteros de 32 bits con signo, el rango de valores es [−231, 231 - 1]. De acuerdo con esta suposición, si el entero se desborda después de la inversión, devuelve 0.

Fuente: LeetCode

Enlace: entero invertido

2. Análisis

Invertir un número entero es equivalente a empujarlo bit a bit y luego bit a bit. Por
ejemplo,
el orden de 123-> 12-> 1 es primero 3, luego 2 y último 1, y
el orden de inserción es primero 3, luego 2, Finalmente 1,
obtenga 3 primero y guárdelo, luego obtenga 2, 3 necesita llevar 3 10, luego presione 2, obtenga 32,
finalmente obtenga 1, 32 necesita llevar
10, obtenga 320, presione 1. Obtenga 321
este código La clave está en el juicio del rango de valores y la posición del juicio, no se puede colocar al final, lo que hará que se exceda el valor máximo o mínimo.

3. Ejemplo de código

public static int reverse(int a){
    
    
        int b = 0;
        int num = 0;
        while(a !=0){
    
    
            b=a%10;
            a/=10;
            if (num>Integer.MAX_VALUE/10 ||(b==Integer.MAX_VALUE/10 && b>7)) return 0;
            if (num>Integer.MAX_VALUE/10 ||(b==Integer.MAX_VALUE/10 && b<-8)) return 0;
            num=num*10+b;
        }

        return num;
    }

Supongo que te gusta

Origin blog.csdn.net/weixin_44712669/article/details/111500230
Recomendado
Clasificación