蓝桥杯_年号字串_java

年号字串

题目描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

小明用字母 A 对应数字 1B 对应 2,以此类推,用 Z 对应 26。对于 27 以上的数字,小明用两位或更长位的字符串来对应,例如 AA 对应 27AB 对应 28AZ 对应 52LQ 对应 329

请问 2019 对应的字符串是什么?

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M

记录题解

这题刷力扣遇到过,这里写下力扣精选题解思路和代码,看懂后可以解决力扣中168.Excel表列名称171.Excel表列序号两道题

/**
 * 思路:这是一道从 1 开始的的 26 进制转换题。
 *
 * 对于一般性的进制转换题目,只需要不断地对 columnNumber 进行 % 运算取得最后一位,
 * 然后对 columnNumber 进行 / 运算,将已经取得的位数去掉,直到 columnNumber 为 0 即可。
 *
 * 一般性的进制转换题目无须进行额外操作,是因为我们是在「每一位数值范围在 [0,x)」的前提下进行「逢 x 进一」。
 *
 * 但本题需要我们将从 1 开始,因此在执行「进制转换」操作前,我们需要先对 columnNumber 执行减一操作,从而实现整体偏移。
 */

public class ExcelSheetColumnTitle{
    public static void main(String[] args) {
        Solution solution = new ExcelSheetColumnTitle().new Solution();
        System.out.println(solution.convertToTitle(2019));
    }

//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
    public String convertToTitle(int cn) {
        StringBuilder sb = new StringBuilder();
        while (cn > 0) {
            cn--;
            sb.append((char)(cn % 26 + 'A'));
            cn /= 26;
        }
        sb.reverse();
        return sb.toString();//BYQ
    }
}
//leetcode submit region end(Prohibit modification and deletion)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值