0%

Leetcode 171 Excel Sheet Column Number

Given a column title as appear in an Excel sheet, return its corresponding column number.

For example:

1
2
3
4
5
6
7
8
A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28
...

Example 1:

1
2
Input: "A"
Output: 1

Example 2:

1
2
Input: "AB"
Output: 28

Example 3:

1
2
Input: "ZY"
Output: 701

Constraints:

  • 1 <= s.length <= 7
  • s consists only of uppercase English letters.
  • s is between “A” and “FXSHRXW”.

26进制

本质上就是26进制. 只不过这种方式没法表示0. 因为是从1开始的

所以要注意计算的时候有int tmp = s.charAt(i) - 'A' + 1; 而不是int tmp = s.charAt(i) - 'A';

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution {
public int titleToNumber(String s) {
if(s == null || "".equals(s))
return 0;
int ans = 0;
for(int i = 0; i < s.length(); ++i)
{
ans *= 26;
if(s.charAt(i) < 'A' || s.charAt(i) > 'Z'){
throw new RuntimeException("string has non-uppercase char.");
}
int tmp = s.charAt(i) - 'A' + 1;
ans += tmp;
}
return ans;
}
}