力扣第171题 Excel 表列序号 26进制 c++ 新手推荐
给你一个字符串 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"]
内
通过次数 169.3K 提交次数 237.4K 通过率 71.3%
思路
> 对于这题我们通过A~Z为单位的26进制的解法。
解题方法
> C++语言的代码,用于将Excel表格中的列字母转换为对应的数字。
>具体的做法是针对每个字母,将其转化为对应的数字。对于这个过程,我们可以使用26进制的方式,因为Excel中的列字母是由A~Z这26个字符组成的。
具体解释如下:
>定义一个变量ans,表示最终转化得到的数字,初始化为0。
>使用一个循环遍历输入字符串columnTitle中的每个字符,循环变量为变量i,从0到columnTitle.size()(字符串长度)。
>在每次循环中,将当前数字ans乘上26(相当于进位),然后加上当前字符转化而来的数字。这里需要注意,在ASCII码表中,字母A~Z分别对应的数字是65~90,而我们需要将它们映射为1~26,因此需要减去'A'的ASCII码值(即65)后再加上1。
>循环结束后,变量ans中存储的就是列字母所对应的数字。
>将ans作为函数的返回值。
>这段代码的时间复杂度为O(n),其中n是字符串的长度,因为需要遍历整个字符串并进行转化操作。空间复杂度为O(1),因为只需要使用一个变量ans来存储结果。
>综上所述,该代码是比较简单的字符串转化操作,使用了26进制的方式进行转化。
复杂度
- 时间复杂度:
> $O(n)$
- 空间复杂度:
> $O(1)$
# Code
```C++ []
class Solution {
public:
int titleToNumber(string columnTitle) {
int ans = 0; // 用于存储最终转换得到的数字
// 遍历输入字符串columnTitle中的每个字符
for (int i = 0; i < columnTitle.size(); i++)
{
ans *= 26; // 将已有结果乘上26(相当于进位)
// 将当前字符转化为对应的数字,并加到结果上
ans += (columnTitle.at(i) - 'A') + 1;
// 注意:在ASCII码表中,字母A~Z分别对应的数字是65~90,而我们需要将它们映射为1~26
// 所以需要将当前字符的ASCII码值减去'A'的ASCII码值(即65),然后再加上1
}
return ans; // 返回最终的结果
}
};
```
代码部分
class Solution {
public:
int titleToNumber(string columnTitle) {
int ans = 0; // 用于存储最终转换得到的数字
// 遍历输入字符串columnTitle中的每个字符
for (int i = 0; i < columnTitle.size(); i++)
{
ans *= 26; // 将已有结果乘上26(相当于进位)
// 将当前字符转化为对应的数字,并加到结果上
ans += (columnTitle.at(i) - 'A') + 1;
// 注意:在ASCII码表中,字母A~Z分别对应的数字是65~90,而我们需要将它们映射为1~26
// 所以需要将当前字符的ASCII码值减去'A'的ASCII码值(即65),然后再加上1
}
return ans; // 返回最终的结果
}
};
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)