Excel Sheet Column Number
题意:
Given a column title as appear in an Excel sheet, return its corresponding column number.
例如
A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28
代码如下
class Solution {
public:
int titleToNumber(string s) {
int sum = 0;
for (int i = 0; i < s.size(); ++i) {
//因为'A'是以1开头,因此要“+1”
int temp = s[i] - 'A' + 1;
sum = 26 * sum + temp;
}
return sum;
}
};
分析
题目大意就是处理26进制,逐个读入字符串中的每一个字符进行处理转换即可。
注意 :由于下标从1开始而不是从0开始,因此要加一操作
leetcodeyou另一道题目168. Excel Sheet Column Title和这道题目互逆,题意如下:
Excel Sheet Column Title
Given a non-zero positive integer, return its corresponding column title as appear in an Excel sheet.
For example:
1 -> A
2 -> B
3 -> C
...
26 -> Z
27 -> AA
28 -> AB
代码如下
class Solution {
public:
string convertToTitle(int n) {
string result = "";
while(n)
{
//由于下标从1开始而不是从0开始,因此要减一操作
int temp = n-1;
result = (char)(temp%26+'A') + result;
n = temp/26;
}
return result;
}
};
分析
题目大意的本质上就是将一个10进制数转换为一个26进制的数。
注意 :由于下标从1开始而不是从0开始,因此要减一操作