文章目录
- 一【题目类别】
- 二【题目难度】
- 三【题目编号】
- 四【题目描述】
- 五【题目示例】
- 六【解题思路】
- 七【题目提示】
- 八【时间频度】
- 九【代码实现】
- 十【提交结果】
一【题目类别】
- 字符串
二【题目难度】
- 简单
三【题目编号】
- 171.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
六【解题思路】
- 仔细观察示例,发现就是26进制而已,那么此题就没有难度了
- 按照10进制的规律按位加起来就行
- 最后返回结果即可
七【题目提示】
- 1 < = c o l u m n T i t l e . l e n g t h < = 7 1 <= columnTitle.length <= 7 1<=columnTitle.length<=7
- c o l u m n T i t l e 仅 由 大 写 英 文 组 成 columnTitle 仅由大写英文组成 columnTitle仅由大写英文组成
- c o l u m n T i t l e 在 范 围 [ " A " , " F X S H R X W " ] 内 columnTitle 在范围 ["A", "FXSHRXW"] 内 columnTitle在范围["A","FXSHRXW"]内
八【时间频度】
- 时间复杂度: O ( n ) O(n) O(n),其中 n n n为字符串长度
- 空间复杂度: O ( 1 ) O(1) O(1)
九【代码实现】
- Java语言版
package String;
/**
* @Author: IronmanJay
* @Description: 171.Excel 表列序号
* @CreateTime: 2022-11-30 09:25
*/
public class p171_ExcelSheetColumnNumber {
public static void main(String[] args) {
String columnTitle = "AB";
int res = titleToNumber(columnTitle);
System.out.println("res = " + res);
}
public static int titleToNumber(String columnTitle) {
int res = 0;
for (int i = 0; i < columnTitle.length(); i++) {
int num = columnTitle.charAt(i) - 'A' + 1;
res = res * 26 + num;
}
return res;
}
}
- C语言版
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int titleToNumber(char * columnTitle)
{
int res = 0;
for (int i = 0; i < strlen(columnTitle); i++)
{
int num = columnTitle[i] - 'A' + 1;
res = res * 26 + num;
}
return res;
}
/*主函数省略*/
十【提交结果】
-
Java语言版
-
C语言版