171. Excel Sheet Column Number
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
Thinking
Title to number is the inverse of problem \(168\): each letter is a digit in \(1\ldots 26\). Fold left to right with \(\textit{ans}=\textit{ans}\times 26 + (c-'A'+1)\), the same pattern as parsing a decimal string.
The column name in Excel is a representation in base 26. For example, "AB" represents the column number \(1 \times 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)\).
1 2 3 4 5 6 | |
1 2 3 4 5 6 7 8 9 | |
1 2 3 4 5 6 7 8 9 10 | |
1 2 3 4 5 6 | |
1 2 3 4 5 6 7 | |
1 2 3 4 5 6 7 8 9 | |