leetcode Question: Excel Sheet Column Number

Excel Sheet Column Number

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:

This problem is pretty straightforward. Simply apply maltiplication and power of 26 (the number of chars from A-Z) will work well.

For each string, e.g. BCD:
  • char D represents number  D - A + 1 ===> 4
  • char C represents number  (26 ** 1) * (C - A + 1) ===> 78
  • char B represents number  (26 ** 2) * (B - A + 1) ===> 1352
Therefore, the string BCD represents number 1352 + 78 + 4 = 1434

 

Code (C++):

class Solution {
public:
int titleToNumber(string s) {
int res = 0;
for (int i=s.size()-1;i>=0;--i){
res += (s[i]-'A' + 1) * pow(26, s.size() - i -1);
}
return res;
}
};

Code (Python):

class Solution(object):
def titleToNumber(self, s):
"""
:type s: str
:rtype: int
"""
res = 0
for i in range(len(s)):
res += 26**(len(s)-i-1) * (ord(s[i])-ord('A') + 1)
return res

No comments:

Post a Comment