当前位置: 首页 > article >正文

Excel 表格列序号

给你一个字符串 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"] 内
class Solution {
public:
    int titleToNumber(string columnTitle) {
        int n= columnTitle.size();
        map<char,int> m;
        for(int i=0;i<26;i++)// 创建字符到对应数字的映射
        m['A'+i]=i+1;

        int re=0;
        for(int i=n-1;i>=0;i--){
           re += m[columnTitle[i]] * pow(26,(n-i-1)) ;// 计算每个字符的贡献
        }
        return re;
    }
};

思路

创建一个字符到整数的映射,用于存储每个字母对应的值。使用循环来填充 map,将字符 A 到 Z 映射到其对应的整数值:
m['A' + i] = i + 1; 表示将 'A' 到 'Z' 对应的值分别设置为 1 到 26。
re += m[columnTitle[i]] * pow(26, (n - i - 1));:
对于每个字符,计算它在最终列序号中的贡献:m[columnTitle[i]] 获取当前字符对应的值。
pow(26, (n - i - 1)) 计算当前字符的权重,位置越左,权重越高。将当前字符的值乘以其权重后累加到 re 中。 例如: 十进制1,10,100,1000... 26进制1,26,26 26,26 26*26...

复杂度

  • 时间复杂度: O(n) O(n) O(n)
  • 空间复杂度: O(1)

http://www.kler.cn/news/329853.html

相关文章:

  • 你的个人文件管理助手:AI驱动的本地文件整理工具
  • Modbus通讯协议
  • Cpp::STL—vector类的使用与理解(上)(10)
  • Tiny-universe手戳大模型TinyRAG--task4
  • docker pull 超时Timeout失败的解决办法
  • 野火STM32F103VET6指南者开发板入门笔记:【1】点亮RGB
  • RabbitMQ 优点和缺点
  • 基于单片机跑步机控制系统设计
  • WPS在表格中填写材料时,内容过多导致表格不换页,其余内容无法正常显示 以及 内容过多,导致表格换页——解决方法
  • 网络协议的作用是什么
  • Anaconda 使用教程
  • 高中教辅汇总【35GB】
  • 数据可视化基础:让数据说话
  • 数电基础(组合逻辑电路+Proteus)
  • 【AI知识点】词嵌入(Word Embedding)
  • 03.04、化栈为队
  • 【JWT安全】portswigger JWT labs 全解
  • 《武汉大学学报(理学版)》
  • linux中bashrc和profile环境变量在Shell编程变量的传递作用
  • 腾讯云SDK产品功能
  • npm与包
  • 攻防世界---->SignIn
  • 51c自动驾驶~合集1
  • OpenGL笔记十九之相机系统
  • 【C#生态园】后端服务与网络库:选择适合你游戏开发的利器
  • Azure DevOps Server:不能指派新增的用户
  • 【Kubernetes】常见面试题汇总(四十三)
  • VSOMEIP代码阅读整理(1) - 网卡状态监听
  • OpenCV视频I/O(10)视频采集类VideoCapture之从视频流中检索一帧图像函数 retrieve()的使用
  • 如何使用 DomCrawler 进行复杂的网页数据抓取?