题目链接
解题思路
- 进制转换,
26 -> 10
- 注意不是从
0
开始,而是从1
开始,所以在处理每一位的时候要把当前的位进行减1的操作
AC代码
class Solution {
public String convertToTitle(int n) {
StringBuilder stringBuilder = new StringBuilder();
while (n != 0) {
n--;
stringBuilder.append((char) (n % 26 + 'A'));
n /= 26;
}
return stringBuilder.reverse().toString();
}
}
本地测试代码
package com.company;
public class Solution_168 {
public static String convertToTitle(int n) {
StringBuilder stringBuilder = new StringBuilder();
while (n != 0) {
n--;
stringBuilder.append((char) (n % 26 + 'A'));
n /= 26;
}
return stringBuilder.reverse().toString();
}
public static void main(String[] args) {
System.out.println(convertToTitle(1));
System.out.println(convertToTitle(28));
System.out.println(convertToTitle(701));
}
}