题目描述
【leetcode】171. Excel表列序号( Excel Sheet Column Number )
给定一个Excel表格中的列名称,返回其相应的列序号。
例如,
A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28
...
第一次解答
思路
26进制转10进制,特别的是没有0
注意,这题目有bug:题目是不是有bug,C++中题目定义的返回值为int类型,但是提交后运行官方测试用例"FXSHRXW"
,得到结果会超过int所能表达的范围。
test case:
“A”
“AB”
“ZY”
class Solution {
public:
int titleToNumber(string s) {
if(s.size() == 0)
return -1;
unsigned long col_number = 0;
for(int i=0; i<s.size(); ++i){
col_number = col_number*26 + s[i]-'A' + 1;
}
return col_number;
}
};
结果: