171. Excel Sheet Column Number
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 -> 28171.Excel表格列编号
和问题“168.Excel表格列标题”相关(168题是将数字转成字母形式)
给定一个像Excel表格里显示的列标题,返回对应的列号
如例子所示
思路:可以将字符串从左到右遍历,将对应的字母转成数字,每次累计后在下次乘以26以进行下一轮,因为可以看出字母形式的字符串相当于一个26进制数。注意这种26进制与想像的26进制略有不同,虽然是26一轮换,但是起点A对应的是1,终点Z对应的是26,所以可以考虑先将A映射成0,Z映射成25,然后每轮叠加时都加上1,这样就变成题目中描述的26进制了。
int titleToNumber(char* s) {
int num = 0;
for (char* p = s; *p; p++){
num = num*26 + *p-'A'+1;
}
return num;
}
class Solution(object):
def titleToNumber(self, s):
"""
:type s: str
:rtype: int
"""
num = 0
for p in s:
num = num * 26 + ord(p) - ord('A') + 1
return num