Skip to content

Latest commit

 

History

History
29 lines (22 loc) · 1.69 KB

168_Excel表列名称.md

File metadata and controls

29 lines (22 loc) · 1.69 KB

Excel表列名称

168. Excel表列名称 - 力扣(LeetCode) (leetcode-cn.com)

分析

相当于把一个十进制数columnNumber转化为26进制数。但是注意,EXCEL中是从1开始而不是0开始。

n 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
rem 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 0
n-1 -1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
A B C D E F G H I J K L M N O P Q R S T U V W X T Z

所以,每次转换中我们将columnNumber减一,转化为从0开始的十进制数,再进行取余操作。

class Solution {
    public String convertToTitle(int columnNumber) {
        StringBuilder sb = new StringBuilder();
        while (columnNumber != 0) {
            sb.append((char) ((columnNumber - 1) % 26 + 'A'));
            columnNumber = (columnNumber - 1) / 26;
        }
        return sb.reverse().toString();
    }
}