【LeetCode】Excel Sheet Column Title(Excel表列名称)

83 篇文章 1 订阅
65 篇文章 1 订阅

这道题是LeetCode里的第168道题。

题目描述:

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

例如,

    1 -> A
    2 -> B
    3 -> C
    ...
    26 -> Z
    27 -> AA
    28 -> AB 
    ...

示例 1:

输入: 1
输出: "A"

示例 2:

输入: 28
输出: "AB"

示例 3:

输入: 701
输出: "ZY"

String 和 StringBuilder 时间上一样。

解题代码:

class Solution {
    public String convertToTitle(int n) {
        // if(n <= 0)return "";
        // String s = "";
        // while(n != 0){
        //     int get = n % 26 == 0 ? 26 : n % 26;
        //     n -= get;
        //     n /= 26;
        //     char ch = (char)(64 + get);
        //     s = ch + s;
        // }
        // return s;
        
        if(n <= 0)return "";
        StringBuilder sb = new StringBuilder();
        while(n > 0){
            //int get = n%26==0 ? 26 : n%26;
            n--;
            int get = n % 26;
            n -= get;
            n /= 26;
            sb.append((char)(get+'A'));
        }
        return sb.reverse().toString();
    }
}

提交结果:

个人总结:

代码里需要减一是因为现实中第一个是逻辑上的1,计算机里第一个却是0。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值