力扣(LeetCode)Excel表列序号 个人题解
给定一个Excel表格中的列名称,返回其相应的列序号。
例如,
A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ...
示例 1:
输入: "A" 输出: 1
示例 2:
输入: "AB" 输出: 28
示例 3:
输入: "ZY" 输出: 701
致谢:
特别感谢 @ts 添加此问题并创建所有测试用例。
思路比较简单,相当于把26进制化为十进制。这里我偷懒把最低位单独出来计算,省去了一步阶乘的麻烦,可读性比较差,但是还是能看得懂的。
代码如下:
class Solution { public int titleToNumber(String s) { int mi=26; int ans=s.charAt(s.length()-1)-'A'+1; for(int i=s.length()-2;i>=0;i--) { ans+=(s.charAt(i)-'A'+1)*mi; mi*=26; } return ans; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】博客园2025新款「AI繁忙」系列T恤上架,前往周边小店选购
【推荐】凌霞软件回馈社区,携手博客园推出1Panel与Halo联合会员
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步