LeetCode - reverse-número entero

Q: enteros x serán dadas de la tapa. Ejemplo 1: x = 123, los retornos 321 casos 2: x = -123, -321 retorno

¿Ha pensado en las siguientes preguntas? Si el último número entero bit es cero, la salida debe ser? Por ejemplo, el entero puede desbordar flip 10100 ¿Ha notado que? Suponiendo que la entrada es un número entero de 32 bits, a continuación, dar la vuelta 10000000003 se desbordará, ¿cómo hacer frente a una muestra de este tipo? Lanzar una excepción? Hacen bien, pero si no permite que se produce una excepción? Así que hay que rediseñar la función (por ejemplo, agregar un parámetro adicional).

A: ...... con la cadena no es un poco mejor?

    public int reverse(int x) {
        String s = Integer.toString(x);
        char[] c = s.toCharArray();
        if (c[0] == '-') {
            swapIn(c, 1, c.length - 1);
        } else {
            swapIn(c, 0, c.length - 1);
        }
        String s1 = new String(c);
        int result = 0;
        try {
            result = Integer.parseInt(s1);
        } catch (Exception e) {
            return 0;
        }
        return result;
    }

    private void swapIn(char[] c, int start, int end) {
        while (start < end) {
            char temp = c[start];
            c[start] = c[end];
            c[end] = temp;
            start++;
            end--;
        }
    }

Supongo que te gusta

Origin www.cnblogs.com/xym4869/p/12652435.html
Recomendado
Clasificación