Description
Given a string columnTitle that represents the column title as appears in an Excel sheet, return its corresponding column number.
For example:
A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ...
Example 1:
Input: columnTitle = "A" Output: 1
Example 2:
Input: columnTitle = "AB" Output: 28
Example 3:
Input: columnTitle = "ZY" Output: 701
Constraints:
1 <= columnTitle.length <= 7columnTitleconsists only of uppercase English letters.columnTitleis in the range["A", "FXSHRXW"].
Solutions
Solution 1: Base Conversion
The column name in Excel is a representation in base 26. For example, "AB" represents the column number 1 × 26 + 2 = 28.
Therefore, we can iterate through the string columnTitle, convert each character to its corresponding value, and then calculate the result.
The time complexity is O(n), where n is the length of the string columnTitle. The space complexity is O(1).
PythonJavaC++GoTypeScriptC#
class Solution: def titleToNumber(self, columnTitle: str) -> int: ans = 0 for c in map(ord, columnTitle): ans = ans * 26 + c - ord("A") + 1 return ans(code-box)
