力扣168(java)-Excel表列名称(简单)
题目:
给你一个整数 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"
提示:
- 1 <= columnNumber <= 231 - 1
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/excel-sheet-column-title
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路:
类比进制转换中的【除留余数法】
十进制的余数:0~9
二进制的余数:0、1
二十六进制的余数:0~25
已知A~Z的映射值为1~26,需要将其映射到0~25,故需要将每一位映射值减1即可。
例如:
columnNumber = 701
第一轮:
columnNumber - 1== 700; columnNumber % 26 == 24; (char)('A' + columnNumber % 26) == (char) (65 +24 ); ==> Y
sb.append(Y); columnNumber /26 == 26;
第二轮:
columnNumber - 1== 25; columnNumber % 26 == 25; (char)('A' + columnNumber % 26) == (char) (65 +25 ); ==> Z
sb.append(Z) columnNumber /26 == 0;
columnNumber == 0 结束循环,结果为 YZ,返回结果就是 ZY。
代码:
1 class Solution { 2 public String convertToTitle(int columnNumber) { 3 StringBuilder sb = new StringBuilder(); 4 while( columnNumber != 0){ 5 columnNumber--; 6 sb.append((char)('A' + columnNumber % 26)); 7 columnNumber /= 26; 8 } 9 return sb.reverse().toString(); 10 } 11 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)