Nombre de la columna de la tabla de Excel

1. Demanda

  • Dado un entero positivo, devuelve el nombre de la columna correspondiente en la tabla de Excel.

P.ej,

    1 -> A
    2 -> B
    3 -> C
    ...
    26 -> Z
    27 -> AA
    28 -> AB 
    ...

Ejemplo 1:

Entrada: 1
 Salida: "A"

Ejemplo 2:

Entrada: 28
 Salida: "AB"

Ejemplo 3:

Entrada: 701
 Salida: "ZY"

Dos, método de conversión base

2.1 Análisis de pensamiento

  1. A ~ Z se comparará con una F hexadecimal. A ~, A ~ es entonces Z representa un número de 1 a 26, significa que el sujeto para convertir el número decimal hexadecimal 26 A ~ Z representa, usamos  x_i para Representa la i- th bit del sistema de 26 bases, entonces:
  2. Expresión general :,  el rango ...... + x_4 * 26 ^ 3 + x_3 * 26 ^ 2 + x_2 * 26 ^ 1 + x_1 * 26 ^ 0 = nen este momento  x_ies 1 ~ 26, por lo que se requiere x1. Si el resto de 26 en ambos lados de la ecuación no puede obtener x1, para resolver este problema, puede restar 1 de ambos lados de la ecuación. ecuación al mismo tiempo, por lo que obtiene ...... + x_4 * 26 ^ 3 + x_3 * 26 ^ 2 + x_2 * 26 ^ 1 + (x_1-1) * 26 ^ 0 = n-1, De esta manera, el rango de x1-1 es 0 ~ 25, y el resto de 26 en ambos lados de la ecuación puede obtener x1, es decir, x1 = (n-1) % 26 + 1;
  3. De manera similar, para la conveniencia de encontrar x2, divida 26 en ambos lados de la ecuación al mismo tiempo para eliminar x1. Por lo tanto, el método para x2, x3, etc. es repetir 2, 3;

2.2 Implementación del código

class Solution {
    public String convertToTitle(int n) {
        StringBuilder sb = new StringBuilder();
        while(n > 0) {
            n--;
            //这里将'A'看作1
            sb.append((char)(n % 26 + 'A'));
            n = n / 26;
        }
        sb.reverse();
        return sb.toString();
    }
}

2.3 Análisis de complejidad

  • La complejidad del tiempo es O (log_ {26} N)convertir decimal a 26;
  • La complejidad del espacio es O (1) y el valor de retorno no se incluye en el espacio adicional;

3. Dirección de aprendizaje

Autor: windliang

Enlace: https://leetcode-cn.com/problems/excel-sheet-column-title/solution/xiang-xi-tong-su-de-si-lu-fen-xi-by-windliang-2/

Supongo que te gusta

Origin blog.csdn.net/Sruggle/article/details/113698482
Recomendado
Clasificación