随笔 - 384  文章 - 0  评论 - 0  阅读 - 13万

力扣171(java)-Excel表列序号(简单)

题目:

给你一个字符串 columnTitle ,表示 Excel 表格中的列名称。返回 该列名称对应的列序号 。

例如:

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

示例 1:

输入: columnTitle = "A"
输出: 1
示例 2:

输入: columnTitle = "AB"
输出: 28
示例 3:

输入: columnTitle = "ZY"
输出: 701
 

提示:

  • 1 <= columnTitle.length <= 7
  • columnTitle 仅由大写英文组成
  • columnTitle 在范围 ["A", "FXSHRXW"] 内

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/excel-sheet-column-number
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路:

参考【宫水三叶】小姐姐的题解思路~,类比十进制转换方法进行26进制转换

十进制转换规则:

1.首先需要定义初始 num = 0;

2.然后for循环每一个字符串;

3.将上一次计算的 num * 进制数10,然后在加上当前的数字;
4.重复步骤3,直到循环条件不满足,最终求总和后返回结果即可。

26进制与十进制类似,只是26进制中没有0,A-Z为1~26,故获取当前位的数字为:columnTitle.charAt(i) - 'A' + 1。其他步骤仿照十进制就可以写出。

代码:

复制代码
 1 class Solution {
 2     public int titleToNumber(String columnTitle) {
 3         int n = columnTitle.length();
 4         int num = 0;
 5         for(int i = 0; i < n; i++){
 6             num = num * 26 + (columnTitle.charAt(i) - 'A' + 1);  
 7         } 
 8         return num; 
 9     }
10 }
复制代码

posted on   我不想一直当菜鸟  阅读(402)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示