每日一道算法题039 Excel表列名称

238 阅读1分钟

题目

leetCode 第 168 题,Excel表列名称
关联类型:数学

给定一个正整数,返回它在 Excel 表中相对应的列名称。

例如,

    1 -> A
    2 -> B
    3 -> C
    ...
    26 -> Z
    27 -> AA
    28 -> AB 
    ...
    
示例 1:
输入: 1
输出: "A"

示例 2:
输入: 28
输出: "AB"

示例 3:
输入: 701
输出: "ZY"

做题时间

class Solution {
    public String convertToTitle(int columnNumber) {
        
        
    }
}

以上给出方法输入参数,完成作答。

题目分析

  1. 一道数学题,将数取余26得到后面的字母
  2. 然后将原数整除后得到的数继续取余
  3. 直到原数小于0 则结束

解答分析

本文只分析本人做题思路,仅供参考,了解一种解题思想,其他各种做题思路请上网查阅。

解答成功:
执行耗时:0 ms,击败了100.00% 的Java用户
内存消耗:35.6 MB,击败了54.24% 的Java用户

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