年号字串
题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
小明用字母 A
对应数字 1
,B
对应 2
,以此类推,用 Z
对应 26
。对于 27
以上的数字,小明用两位或更长位的字符串来对应,例如 AA
对应 27
,AB
对应 28
,AZ
对应 52
,LQ
对应 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)
}