leetcode171. Excel 表列序号,进制转换

leetcode171. 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
在这里插入图片描述

目录

  • leetcode171. Excel 表列序号
  • 题目解析
  • 算法分析
  • 算法步骤
  • 算法流程
  • 具体代码
  • 算法分析
  • 易错点
  • 相似题目

题目解析

题目要求我们将Excel表格中的列标题(如"A", “B”, “Z”, “AA”, "AB"等)转换为对应的列号。在Excel中,列标题是按照26进制来表示的,其中"A"对应1,"Z"对应26,"AA"对应27,以此类推。

算法分析

这个问题可以通过将列标题视为26进制数来解决。我们需要从右到左遍历列标题的每个字符,将其转换为对应的数字,并乘以26的相应次幂,然后累加到结果中。

算法步骤

  1. 初始化结果变量res为0。
  2. 从列标题的最后一个字符开始,向左遍历每个字符。
  3. 对于每个字符,计算它在26进制中的值(字符’A’对应的值为1,'B’为2,依此类推)。
  4. 将该值乘以26的相应次幂(从1开始,每向左移动一个字符,次幂加1)。
  5. 将计算出的值累加到结果变量res中。
  6. 返回结果变量res

算法流程

在这里插入图片描述

具体代码

class Solution {
public:int titleToNumber(string columnTitle) {int number = 0;long multiple = 1;for (int i = columnTitle.size() - 1; i >= 0; i--) {int k = columnTitle[i] - 'A' + 1;number += k * multiple;multiple *= 26;}return number;}
};

算法分析

  • 时间复杂度: O(n),其中n是字符串的长度。这是因为我们需要遍历整个字符串一次。
  • 空间复杂度: O(1),我们只需要常数级别的额外空间来存储结果和临时变量。

易错点

  • 正确处理字符到数字的转换,确保’A’对应1,'Z’对应26。
  • 正确计算26的次幂。

相似题目

题目链接
Excel表列名称https://leetcode.cn/problems/excel-sheet-column-title/
Excel表列序号https://leetcode.cn/problems/excel-sheet-column-number/

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

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

相关文章

电商平台产品ID|CDN与预渲染|前端边缘计算

技术实现 都是通过ID拿到属性,进行预渲染html,通过 oss 分发出去 详情页这种基本都是通过 ssr 渲染出来,然后上缓存 CDN 分发到边缘节点来处理,具体逻辑可以参考 淘宝——EdgeRoutine边缘计算(CDNServerless 边缘计算…

国内真正意义上的OpenAI,最强多模态大模型 MiniCPM-V 2.6 发布

最近这一两周看到不少互联网公司都已经开始秋招提前批了。不同以往的是,当前职场环境已不再是那个双向奔赴时代了。求职者在变多,HC 在变少,岗位要求还更高了。 最近,我们又陆续整理了很多大厂的面试题,帮助一些球友解…

二叉树的最大深度

二叉树的最大深度 思路: 法一:深搜 也就是递归 要想清楚边界条件 好久没写深搜了 回忆下怎么写。 突然就悟了: /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *rig…

2024年6月 青少年机器人技术等级考试理论综合试卷(二级)

202406 青少年等级考试机器人理论真题二级 第 1 题 如图,这是飞机起飞时的机翼示意图,下列说法正确的是?( ) A:机翼上侧所受的气压为0 B:机翼受到向下的力的作用 C:机翼下侧所受…

基于sklearn的机器学习 — 支持向量机(SVM)

支持向量机(SVM:support vector machine)另一种功能强大、应用广泛的学习算法,可应用于分类、回归、密度估计、聚类等问题。SVM可以看作是感知器(可被视为一种最简单形式的前馈神经网络,是一种二元线性分类…

C++ 特殊类设计

目录 0.前言 1.设计一个不能被拷贝的类 1.1C98实现 1.2C11实现 2.设计一个只能在堆上创建对象的类 3.设计一个只能在栈上创建对象的类 4.设计一个不能被继承的类 4.1C98实现 4.2C11实现 5.设计只能创建一个对象的类(单例模式) 5.1设计模式简介 5.2单例模…

Jupyter nbextensions安装与使用

这里写自定义目录标题 Jupyter nbextensions安装与使用安装7以下版本,安装插件包推荐使用的插件 Jupyter nbextensions安装与使用 目前,jupyter版本升级到了7以上版本,导致其界面非常难看,因此,为了重回之前的使用界面…

buuctf-crypto

前言 查找资料的时候,意外翻出之前刷的一些ctf题目,算是简单记录一下,当然因为常用typeo去写md文件,所以其中有很多当时记录的图片都失效了,可惜了 题目1:一眼就解密 ZmxhZ3tUSEVfRkxBR19PRl9USElTX1NUUklOR30 base64解密 flag:flag{THE_FLAG_OF_THIS_STRING} 题目2:MD5 …

全球化浪潮下的数据库革新:嘉里物流 TiDB 实践价值的设想

导读 本文来自 TiDB 社区武汉站——嘉里物流架构团队负责人肖飞老师的演讲《嘉里物流 & TiDB 在全球化业务场景中应用设想》。本次分享探讨了嘉里物流在全球化扩展中,将如何通过 TiDB 的强大功能应对海量数据挑战,优化技术架构,并提升决…

【Linux】详解自定义Shell管道 | 构建简易进程池

目录 续:通信 4 种情况 应用场景 1. 自定义 shell 管道 1. 包含头文件 2. 解析命令函数 详细步骤 3. 执行命令函数 4. 主函数 总结 2. 使用管道实现一个简易版本的进程池 代码结构 代码实现 channel.hpp tasks.hpp main.cc 子进程读取任务&#xff…

十九、虚拟机VMware Workstation(CentOSDebian)的安装

目录 🌻🌻 一、安装 VMware Workstation1.1 安装 VMware Workstation1.2 虚拟机上安装 CentOS1.3 虚拟机安装 Debian 二、配置Debian方便第三方工具远程连接2.1 配置debian2.2 安装远程SSH工具并连接 一、安装 VMware Workstation 官网下载 本地资源库…

你好! Git——企业级开发模型

企业级开发模型(6) 一、删除远程分支,git branch -a (查看所有本地分支与远程分支)还能看到已经删除的分支,怎么解决?二、企业级开发流程2.1 企业级开发流程2.2 系统开发环境 三、Git分支设计模…

RabbitMQ面试题汇总

RabbitMQ面试题 一、RabbitMQ基础1. 什么是RabbitMQ,它的基本架构是怎样的?2. RabbitMQ支持哪些协议?3. 说一下AMQP协议?4. 为什么要使用RabbitMQ?5. MQ的应用场景有哪些?6. 解耦、异步、削峰是什么&#x…

购物系统小程序的设计

管理员账户功能包括:系统首页,个人中心,商品分类管理,商品信息管理,特价商品管理,用户管理,留言板管理,订单管理,系统管理 微信端账号功能包括:系统首页&…

uni-app总结

1. <u-form-item label"报废人" ><u--input v-model"model.remark" border"bottom" placeholder"请输入"></u--input> </u-form-item> border"bottom" 报废日期 为了

后端Web开发之Maven

1.java项目构建工具maven介绍 Maven是apache旗下的一个开源项目。Apache软件基金会&#xff0c;成立于1999年7月&#xff0c;是目前世界上最大的最受欢迎的开源&#xff08;源代码开放&#xff09;软件基金会也是一一个专门为支持开源项目而生的非盈利性组织。 apache开源项目…

PDO在CANopen协议同步传输和异步传输

PDO&#xff08;过程数据对象&#xff09;在CANopen协议中有两种主要的传输方式&#xff1a;同步传输和异步传输。这两种方式决定了PDO数据的传输时机和条件。下面分别举例说明这两种传输方式&#xff1a; 1. 同步传输 (Synchronous Transmission) 概念&#xff1a; 在同步传输…

3GPP 4G 5G 主要协议

4G LTE的协议主要是36 series 5G NR的协议主要是38 series

RustScan:开源端口扫描器

RustScan 是一款开源端口扫描器&#xff0c;专为速度和多功能性而设计。 它结合了时尚的界面和随时间推移而适应和改进的能力。 借助 RustScan 的自适应学习功能&#xff0c;该工具不断优化其性能&#xff0c;使其成为最高效的端口扫描器。 在几秒钟内发现开放端口&#xff…

解决端口号被占用问题

第一种&#xff1a; 最简单有效的方法&#xff0c;重启一下电脑&#xff0c;占用此端口的程序就会释放端口。 第二种&#xff1a; 使用命令找到占用端口的程序&#xff0c;把它关闭。 1、打开运行窗口输入&#xff1a;CMD &#xff0c;进入命令窗口。 2、输入&#xff1a;n…