Related to question Excel Sheet Column Title
Given a column title as appear in an Excel sheet, return its corresponding column number.
For example:
A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB –> 28
然后结构给出来了一个函数和一个参数
int titleToNumber(char *s) {
}
看这个题目,左看右看,神神怪怪,还跟excel弄上关系了,还特地打开excel看了看,等于没说,也就是excel列的标号为A,B,C,……,Z,AA,AB它们代表的行数为右边的值,没啥信息量,等于没说,还是得找到key和value的关系
规定的函数传进去的参数是一个字符串,如果是单个字符,对应关系就是:
A: ‘A’- 64
B: ‘B’- 64
……
单个字符转换成ASCII减去差值64即可,但是假如是一个字符串,去掉末尾‘0’,对应关系:
AA: (‘A’- 64) * 26 + (‘A’- 64)
AB: (‘A’- 64) * 26 + (‘B’- 64)
……
因此很容易顺序逐个遍历字符串的字符,前一位*26+后一位字符的值即可,就像26进制的感觉
提交
int titleToNumber(char *s) {
int i = 0;
int sum = 0;
while (s[i] != '\0'){
sum = sum * 26 + s[i] - 64;
++i;
}
return sum;
}
搞定
Submission Details 1000 / 1000 test cases passed. Status: Accepted Runtime: 5 ms
