给定一个Excel表格中的列名称,返回其相应的列序号。
例如,
A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ...
示例 1:
输入: "A" 输出: 1
示例 2:
输入: "AB" 输出: 28
示例 3:
输入: "ZY" 输出: 701
可能这道题太简单,网上的答案都没有解释步骤,笨人自有笨办法。
class Solution {
public:
int titleToNumber(string s) {
int result = 0;
for (int i = 0; i < s.size(); i++) {
result += (s [i] - 64) * pow(26, s.size() - i - 1);
}
return result;
}
};
答案如上,没几行但是花了很长时间来推导。以下为说明:
1 如“D”这个字符串可以认为只有一个个位,因为A对应1,D就对应4,因为中间有B和C夹在中间数过来差距为3.用式子表达