当前位置 博文首页 > 好好学习天天向上:leetcode-Algorithms-168|Excel表列名称

    好好学习天天向上:leetcode-Algorithms-168|Excel表列名称

    作者:[db:作者] 时间:2021-07-15 19:00

    原题

    给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。
    
    例如:
    
    A -> 1
    B -> 2
    C -> 3
    ...
    Z -> 26
    AA -> 27
    AB -> 28 
    ...
     
    
    示例 1:
    
    输入:columnNumber = 1
    输出:"A"
    示例 2:
    
    输入:columnNumber = 28
    输出:"AB"
    示例 3:
    
    输入:columnNumber = 701
    输出:"ZY"
    示例 4:
    
    输入:columnNumber = 2147483647
    输出:"FXSHRXW"
    
    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/excel-sheet-column-title
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
    

    思路

    26进制

    代码

    class Solution {
        public String convertToTitle(int columnNumber) {
            // 使用buffer存储字符串
            StringBuffer sb = new StringBuffer();
            // 进制转换
            while (columnNumber > 0) {
                // 注意是没有0的,是从1开始到26
                int t = (columnNumber - 1) % 26 + 1;
                // 添加字符
                sb.append((char)(t - 1 + 'A'));
                // columnNumber去除t并降位
                columnNumber = (columnNumber - t) / 26;
            }
            // 转换为String类型
            return sb.reverse().toString();
    
        }
    }
    
    cs