Excel Sheet Column Number

Question

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

Analysis

26进制转换为10进制,秦九韶算法?

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
public:
int titleToNumber(string s) {
int number = 0;
int temp = 0;
for(int i = 0; i<s.length();i++)
{
temp = s[i] - 'A' + 1;
number = number * 26 + temp;
}
return number;
}
};

Summary

for(;;i++)和for(;;++i)功能完全一样,没有任何区别,我在另外有帖子说明过。

i++与++i只有在表达式(包括逗号表达式、赋值表达式)中才有区别,在独立的语句(分号分隔)中没有任何区别。

++i和i++的区别是,++i是i先以当前值参加表达式计算然后再增加1,i++是i先增加1然后再以新值参加表达式计算。