1. Exigir
- Dado um número inteiro positivo, retorne seu nome de coluna correspondente na tabela do Excel.
Por exemplo,
1 -> A
2 -> B
3 -> C
...
26 -> Z
27 -> AA
28 -> AB
...
Exemplo 1:
Entrada: 1 Saída: "A"Exemplo 2:
Entrada: 28 Saída: "AB"Exemplo 3:
Entrada: 701 Saída: "ZY"
Dois, método de conversão de base
2.1 Análise de pensamento
- A ~ Z será comparado a um hexadecimal F. A ~, A ~ é então Z representa um número de 1 a 26, significa que o assunto para converter o número decimal hexadecimal 26 A ~ Z representa, usamos para Representa o i- o bit do sistema de base 26, então:
- Expressão geral :, o intervalo neste momento é 1 ~ 26, então x1 é necessário. Se o restante de 26 em ambos os lados da equação não puder obter x1, para resolver este problema, você pode subtrair 1 de ambos os lados do equação ao mesmo tempo, então você obtém , Desta forma, o intervalo de x1-1 é 0 ~ 25, e o restante de 26 em ambos os lados da equação pode obter x1, ou seja, x1 = (n-1) % 26 + 1;
- Da mesma forma, para a conveniência de encontrar x2, divida 26 em ambos os lados da equação ao mesmo tempo para eliminar x 1. Portanto, o método para x2, x3, etc. é repetir 2, 3;
2.2 Implementação do 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álise de complexidade
- A complexidade do tempo consiste em converter o decimal em 26;
- A complexidade do espaço é O (1) e o valor de retorno não está incluído no espaço extra;
3. Endereço de aprendizagem
Autor: Windliang