🌕 168. Excel表列名称

吞佛童子2022年10月10日
  • algorithm
  • Number
小于 1 分钟

🌕 168. Excel表列名称

难度: 🌕

问题描述

img_13.png


解法

class Solution {
    public String convertToTitle(int columnNumber) {
        // 思路:
        // 依次除以 26,取余数拼接
        int cur = columnNumber;
        if(cur == 26) {
            return "Z";
        }
        int left = 0;
        int next = 0;
        StringBuilder sb = new StringBuilder();
        while(cur > 0) {
            left = cur % 26; // ∈[0, 25]
            char c;
            if(left == 0) {
                c = 'Z';
                cur -= 26;
            } else {
                c = (char)('A' + left - 1);
            }
            next = cur / 26;
            // System.out.println("除数: " + next + " 余数: " + left + " 对应字母: " + c);
            sb.append(c);
            cur = next;
        }
        return sb.reverse().toString();
    }
}

输出

img_12.png

上次编辑于: 2022/10/10 下午8:43:48
贡献者: liuxianzhishou