P198 Excel 表格的列编号
算法 20 阅读
信号摘要
难度:Easy · 时长:04:53 · leetcode 171 · lintcode 1348
未对外公开播放权限
点击查看说明
描述
这个题目说的是,给你一个 Excel 表格的列标题,你要返回它对应的列编号。
注意,题目给出的列标题总是有效的。
// Excel 表格中,列标题与列编号的对应关系 A -> 1 B -> 2 ... Z -> 26 AA -> 27 AB -> 28 ...比如说,给你的列标题是 A,你要返回的对应编号是 1:
A -> 1
再比如说,给你的列标题是 AB,你要返回的编号是 28:
AB -> 28
代码
public class AlgoCasts {
// Time: O(n), Space: O(1)
public int titleToNumberRight2Left(String s) {
int base = 1, num = 0;
for (int i = s.length()-1; i >= 0; --i) {
num += (s.charAt(i) - 'A' + 1) * base;
base *= 26;
}
return num;
}
// Time: O(n), Space: O(1)
public int titleToNumberLeft2Right(String s) {
int num = 0;
for (int i = 0; i < s.length(); ++i) {
num = num * 26 + (s.charAt(i) - 'A' + 1);
}
return num;
}
}