Solution 1
将 0168. Excel Sheet Column Title 反过来了。
也就是字符串数字的特别版,注意转换基底是26,并且从1到26,因此需要注意加一减一的问题。
本题输入限制了数字类型不超过int,因此可以大肆处理不需要考虑转型问题了。
- 时间复杂度: O ( N ) O(N) O(N),其中 N N N为输入字符串的长度,按顺序处理每一个字符
- 空间复杂度: O ( 1 ) O(1) O(1),仅维护常数个状态量
class Solution {
public:
int titleToNumber(string columnTitle) {
int ans = 0;
for (auto c: columnTitle) {
int value = c - 'A' + 1;
ans = ans * 26 + value;
}
return ans;
}
};
Solution 2
Solution 1的Python实现
class Solution:
def titleToNumber(self, columnTitle: str) -> int:
ans = 0
for c in columnTitle:
value = ord(c) - ord('A') + 1
ans = ans * 26 + value
return ans