LC 0171 [E] Excel Sheet Column Number - ALawliet/algorithms GitHub Wiki

To translate a letter to a number we use the Python method ord which returns the Unicode code of the letter. By subtracting the code by 64, we can map letters to the numbers from 1 to 26.

class Solution:
    def titleToNumber(self, columnTitle: str) -> int:
        ans, pos = 0, 0
        for letter in reversed(columnTitle):
            digit = ord(letter)-64
            ans += digit * 26**pos
            pos += 1
            
        return ans
    
    def titleToNumber(self, columnTitle: str) -> int:
        val = 0
        for i, c in enumerate(reversed(columnTitle.upper())):
            val += (26**i) * (ord(c) - ord('A') + 1)
        return val
    
    def titleToNumber(self, columnTitle):
          val = 0
          for i in columnTitle:
              temp = ord(i) - ord('A') + 1
              val = val*26 + temp
          return val
    
'''
>>> ord('a')
97
>>> ord('A')
65
>>> ord('0')
48

base 10
number = '2539'
ans = ans + 9 * 10**0
ans = ans + 3 * 10**1
ans = ans + 5 * 10**2
ans = ans + 2 * 10**3
ans = 2539

for base 26 we do the same but use 26 instead of 10
'''