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
class Solution {
public:int titleToNumber(string s) {
int number=0;
for(int i=0;i<s.length();i++)
{
number=26*number+s[i]-65+1;
}
return number;
}
};
这个问题也非常简单,无非就是把十制问题变成了一个26进制的问题。但其中有几个关键点,string的.length函数;string的第一个字符为最高位,如ABC,s[0]='A',存的是ASCII码。那既然是从高位到低位存储,就需要通过迭代来进行求解。如ABC所对应的数字为1*26*26+2*26+3,分解开来,就是26*(26*1+2)+3。这个太简单,再如ABCD,分解开来,26(26*(26*1+2)+3)+4。总之,都可以通过迭代来进行求解。是不是很简单呢?