LeetCode 171[Excel表列序号]

news/2024/11/15 21:34:54/文章来源:https://www.cnblogs.com/EricsT/p/18536505

题目

链接

LeetCode 171[Excel表列序号]

详情

实例

提示

题解

思路

这其实是一道26进制的算术题

其中

A的权重为1,B的权重为2,C的权重为3,D的权重为4,E的权重为5,F的权重为6,G的权重为7

H的权重为8,I的权重为9,J的权重为10,K的权重为11,L的权重为12,M的权重为13

N的权重为14,O的权重为15,P的权重为16,Q的权重为17,R的权重为18,S的权重为19

T的权重为20,U的权重为21,V的权重为22,W的权重为23,X的权重为24,Y的权重为25,Z的权重为26

可以用 switch 列举,也可以用公式计算:所求字符 - 'A' + 1,例如需要求Z的权重,则 'Z' - 'A' + 1 = 90 - 65 + 1 = 26

 

在10进制里面:

  123的位数是3,123 = 10 ^ (3 - 1) * 1 + 10 ^ (3 - 2) * 2 + 10 ^ (3 - 3) * 3

同理在26进制里面:

  ABC的位数是3,ABC = 26 ^ (3 - 1) * A + 26 ^ (3 - 2) * B + 26 ^ (3 - 3) * C

 

其中幂运算用数学函数 pow 函数计算

其中位数用字符串的 size 方法求得

代码

class Solution {
public:int titleToNumber(string columnTitle) {long long llRet = 0;size_t iSize = columnTitle.size();for (int i = 0; i < iSize; i++){long long llNum = pow(26, iSize - i - 1);switch (columnTitle.at(i)){case 'A':llNum *= 1;break;case 'B':llNum *= 2;break;case 'C':llNum *= 3;break;case 'D':llNum *= 4;break;case 'E':llNum *= 5;break;case 'F':llNum *= 6;break;case 'G':llNum *= 7;break;case 'H':llNum *= 8;break;case 'I':llNum *= 9;break;case 'J':llNum *= 10;break;case 'K':llNum *= 11;break;case 'L':llNum *= 12;break;case 'M':llNum *= 13;break;case 'N':llNum *= 14;break;case 'O':llNum *= 15;break;case 'P':llNum *= 16;break;case 'Q':llNum *= 17;break;case 'R':llNum *= 18;break;case 'S':llNum *= 19;break;case 'T':llNum *= 20;break;case 'U':llNum *= 21;break;case 'V':llNum *= 22;break;case 'W':llNum *= 23;break;case 'X':llNum *= 24;break;case 'Y':llNum *= 25;break;case 'Z':llNum *= 26;break;}llRet += llNum;}return llRet;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/829237.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

常用的 jvm 调优的参数都有哪些

​ 堆内存设置-Xms:设置JVM堆的初始大小。例如:​​-Xms2g​​ 表示初始堆大小为2GB。-Xmx:设置JVM堆的最大大小。例如:​​-Xmx2g​​ 表示最大堆大小为2GB。-XX:NewRatio:设置年轻代和老年代的比例。例如:​​-XX:NewRatio=4​​ 表示年轻代和老年代的比例为1:4。-XX:S…

深入 MyBatis-Plus 插件:解锁高级数据库功能

Mybatis-Plus 提供了丰富的插件机制,这些插件可以帮助开发者更方便地扩展 Mybatis 的功能,提升开发效率、优化性能和实现一些常用的功能。一、关于Mybatis-Plus插件 1.1 简介 Mybatis-Plus 提供了丰富的插件机制,这些插件可以帮助开发者更方便地扩展 Mybatis 的功能,提升开…

【RStudio 2024 软件下载与安装教程】

1、安装包RStudio 2024: 链接:https://pan.quark.cn/s/9c0b51619c36 提取码:acvG RStudio 2022: 链接:https://pan.quark.cn/s/2e59b185b557 提取码:MHdf 2、安装教程 1) 双击R-4.4.2-win.exe安装,弹窗安装对话框2) 选择语言,点击确定3) 点击下一步…

强化学习理论-第二课-贝尔曼公式

1. return和贝尔曼上图说明从不同状态出发得到的return,依赖于从其他状态出发的returnv是return,将第一张图写成矩阵的形式,r代表immediate reward,是已知的,矩阵P是策略加上state transition,也是已知的,求解v 这个公式实际上就是贝尔曼公式在\(S_t\)采用什么样的动作\…

为了`小米互联`升级big sur, 但是无用

起了个大早,升级到big sur,为了小米互联take some photos about upgrading macOS from 10.15.7 to 11.6.5about 1hour....dmg From hyperos.mi.com doesn’t work.Xiaomi HyperConnect 跨端智联app from appStore , incompatiablemy mac info ☁ Downloads neofetchc. …

OFA-Sys/chinese-clip-vit-base-patch16 占用显存测试

model.get_image_features(inputs)64 batch_size 2096MB 取消with torch.no_grad():后 8GB占满 16 batch_size 3886MBAutoModel .from_pretrained(MODEL_NAME) 执行慢,原因是需要启用网络代理,否则总是卡在验证阶段DataLoader 增加num_workers后 torch.cuda.OutOfMemoryError…

java 中都有哪些引用类型

强引用(Strong Reference):Java中默认声明的就是强引用,例如:​​Object obj = new Object();​​ 只要强引用存在,垃圾回收器将永远不会回收被引用的对象 ,哪怕内存不足时,JVM也会直接抛出OutOfMemoryError,不会去回收。如果想中断强引用与对象之间的联系,可以显示的…

类加载的执行过程

类加载的执行过程是Java虚拟机(JVM)将类文件从磁盘加载到内存,并进行验证、准备、解析和初始化等一系列操作的过程。这个过程可以分为以下几个阶段: 1. 加载根据查找路径找到相应的 class 文件然后导入;2. 验证检查加载的 class 文件的正确性;3. 准备给类中的静态变量分…

请问PbootCMS获取结果页面的搜索keyword值和tag值

问题:PbootCMS如何获取结果页面的搜索关键词和tag值? 答案:搜索关键词keyWord:如果搜索结果页面地址后缀为?keyword=三角形,则获取关键词方式为{$get.keyword} tag关键词:如果搜索结果页面地址后缀为/tag/伪静态配置.HTML,则获取关键词方式为{$get.tag} 其他页面:获取…

PbootCMS模板如何调用当前位置面包屑标签

PbootCMS模板如何调用当前位置面包屑标签标签:{pboot:position}参数说明:separator=*:分隔符,非必填,默认为>>indextext=*:首页文本,非必填,默认为"首页"扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CMS,精通PHP+MYSQL、HT…

织梦修改后的网站,织梦CMS内容管理与优化

织梦CMS(DedeCMS)是一款流行的开源内容管理系统,以下是一些内容管理和优化的步骤:登录后台:打开网站的后台管理页面,输入用户名和密码登录。编辑内容:在后台的“内容管理”模块中,找到需要编辑的文章或页面。 点击“编辑”按钮,进行内容修改。发布新内容:在“发布文章…

织梦网站怎么修改自定义,织梦自定义字段管理

在织梦CMS中,自定义字段可以帮助你扩展文章或页面的属性,以下是一些管理自定义字段的步骤:登录后台:打开织梦CMS的后台管理页面,输入用户名和密码登录。进入模型管理:在后台左侧菜单中,点击“核心” > “频道模型” > “管理内容模型”。选择模型:选择需要添加自…