欢迎访问LeetCode题解合集
题目描述
给定一个Excel表格中的列名称,返回其相应的列序号。
例如,
A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28
...
示例 1:
输入: "A"
输出: 1
示例 2:
输入: "AB"
输出: 28
示例 3:
输入: "ZY"
输出: 701
题解:
二十六进制转为十进制。
从左往右遍历每个字符,逐步转换即可。
时间复杂度:$O(n)$
额外空间复杂度:$O(1)$
class Solution {
public:
int titleToNumber(string s) {
int ret = 0;
for( int i = 0; i < s.size(); ++i )
ret = ret * 26 + (s[i] - 'A' + 1);
return ret;
}
};
/*
时间:4ms,击败:54.32%
内存:5.8MB,击败:86.54%
*/