博文中会简要介绍Leetcode P0171题目分析及解题思路。
“Excel Sheet Column Number”是一道比较简单的题目。这道题的核心思路是将字符串到数的转化看成进制的转化,即原先的纯字符串表示的值按26进制转化为十进制结果。不过需要注意的是,这里的进制的起始值不是0,而是1(即A
)。
Given a column title as appear in an Excel sheet, return its corresponding column number.
For example:
A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ...
以下是Java的题解代码实现。
class Solution {
public int titleToNumber(String s) {
if (s.length() == 0)
return 0;
int num = 0, radix = 26;
for (int idx=0; idx<s.length(); ++idx) {
num = num*radix+(int) (s.charAt(idx)-'A'+1);
}
return num;
}
}
以下是C++的题解代码实现。
class Solution {
public:
int titleToNumber(string s) {
if (s.length() == 0)
return 0;
int num = 0, radix = 26;
for (char ch: s) {
num = num*radix+(ch-'A'+1);
}
return num;
}
};