10k

171. Excel Sheet Column Number

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

  1. Same idea with question 168 and this question is easier to implement.
  2. 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;
    }
}
Thoughts? Leave a comment