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