comments | difficulty | edit_url | tags | ||
---|---|---|---|---|---|
true |
简单 |
|
给你一个字符串 columnTitle
,表示 Excel 表格中的列名称。返回 该列名称对应的列序号 。
例如:
A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ...
示例 1:
输入: columnTitle = "A" 输出: 1
示例 2:
输入: columnTitle = "AB" 输出: 28
示例 3:
输入: columnTitle = "ZY" 输出: 701
提示:
1 <= columnTitle.length <= 7
columnTitle
仅由大写英文组成columnTitle
在范围["A", "FXSHRXW"]
内
Excel 表格中的列名称是一种 26 进制的表示方法。例如,"AB" 表示的列序号是
因此,我们可以遍历字符串 columnTitle
,将每个字符转换为对应的数值,然后计算结果即可。
时间复杂度 columnTitle
的长度。空间复杂度
class Solution:
def titleToNumber(self, columnTitle: str) -> int:
ans = 0
for c in map(ord, columnTitle):
ans = ans * 26 + c - ord("A") + 1
return ans
class Solution {
public int titleToNumber(String columnTitle) {
int ans = 0;
for (int i = 0; i < columnTitle.length(); ++i) {
ans = ans * 26 + (columnTitle.charAt(i) - 'A' + 1);
}
return ans;
}
}
class Solution {
public:
int titleToNumber(string columnTitle) {
int ans = 0;
for (char& c : columnTitle) {
ans = ans * 26 + (c - 'A' + 1);
}
return ans;
}
};
func titleToNumber(columnTitle string) (ans int) {
for _, c := range columnTitle {
ans = ans*26 + int(c-'A'+1)
}
return
}
function titleToNumber(columnTitle: string): number {
let ans: number = 0;
for (const c of columnTitle) {
ans = ans * 26 + (c.charCodeAt(0) - 'A'.charCodeAt(0) + 1);
}
return ans;
}
public class Solution {
public int TitleToNumber(string columnTitle) {
int ans = 0;
foreach (char c in columnTitle) {
ans = ans * 26 + c - 'A' + 1;
}
return ans;
}
}