大致题意:
给出Excel列的标题,诸如:A, B, C … AA, AB … BA…
其中每一个列对应的数字为:1, 2, 3 … 27, 28 … 53…
我们要做的就是给出对应的列名,返回对应的数字。
思路
就像是26进制转十进制。
- 从尾至首遍历列名,将当前字母减去 ‘A’再加 1,然后乘上当前对应的基数
- 基数初始为1,每次乘上26
代码:
public int titleToNumber(String columnTitle) {
int num = 0;
int base = 1; // 基数
for (int i = columnTitle.length() - 1; i >= 0; i--) {
char ch = columnTitle.charAt(i);
num += (ch - 'A' + 1) * base; // 当前对应的数
base *= 26;
}
return num;
}
该篇博客详细介绍了如何将Excel列标题如'A', 'AA'等转换为对应的数字,通过类比26进制转十进制的方法,从尾至首遍历列名,计算每个字母所对应的数值并累加,最终得到列号对应的数字。代码实现中,遍历列名,根据字符计算数值,逐次乘以基数(初始为1,每次迭代乘以26),最后返回总和。
316

被折叠的 条评论
为什么被折叠?



