Question
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 <= 7
columnTitle
consists only of uppercase English letters.columnTitle
is in the range["A", "FXSHRXW"]
.
Approach
- Same idea with question 168 and this question is easier to implement.
- Each digit of column title string is the coefficient of the entire number for each base.
Code
class Solution { public int titleToNumber(String columnTitle) { int res = 0; int temp = 1; for (int i = columnTitle.length() - 1; i >= 0; i--) { char ch = columnTitle.charAt(i); int sum = temp * (ch - 'A' + 1); temp *= 26; res += sum; } return res; } }