C# Excel 表列序号

news2024/10/6 10:39:22

171 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”] 内

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/excel-sheet-column-number

解决方案

提供思路:

进制转换

这道题要求将 Excel 表中的列名称转换成相对应的列序号。由于 Excel 表的列名称由大写字母组成,大写字母共有 26 个,因此列名称的表示实质是 26 进制,需要将 26 进制转换成十进制。

但是这道题和标准的进制转换不同,Excel 表的列序号是从1 开始的,因此在进制转换时需要进行处理。

当列名称的长度为 n 时,列名称的每个字母都有 26 种不同的取值,因此长度为 n 的不同列名称有 26 ^个。

当 n=1 时,列名称的取值范围是 A 到 Z,分别对应 1 到 26。当 n>1 时,首先得到除了最高位以外的 n−1 位部分对应的列序号,然后考虑最高位对列序号的增量。

计算最高位对列序号的增量时,需要考虑列名称的长度和最高位的值,假设列名称的长度为 n。

上代码:

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

以上是碰到的第一百七十一题,后续持续更新。感觉对你有帮助的小伙伴可以帮忙点个赞噢!
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

11-Vue的diff算法

参考回答&#xff1a;​​​​​​​ 当组件创建和更新时&#xff0c;vue均会执行内部的update函数&#xff0c;该函数使用render函数生成的虚拟dom树&#xff0c;将新旧两树进行对比&#xff0c;找到差异点&#xff0c;最终更新到真实dom对比差异的过程叫diff&#xff0c;vue在…

《移动互联网技术》第五章 界面开发: 掌握Activity的基本概念,Activity的堆栈管理和生命周期

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

chatgpt赋能python:如何升级Python包

如何升级Python包 如果你是一名有着10年Python编程经验的工程师&#xff0c;那么你一定知道如何安装和使用Python包。但是&#xff0c;有时候你需要升级一些已经安装的包&#xff0c;以获得更好的性能和新功能。在本文中&#xff0c;我们将讨论如何升级Python包。 什么是Pyth…

GDI MFC抠图贴图

文章目录 抠图贴图添加消息命中 抠图 请添加图片描述 BOOL CPokemonDlg::OnInitDialog() {CDialogEx::OnInitDialog();// 设置此对话框的图标。 当应用程序主窗口不是对话框时&#xff0c;框架将自动// 执行此操作SetIcon(m_hIcon, TRUE); // 设置大图标SetIcon(m_hIcon,…

Spring Boot 中的 RabbitMQ 是什么,如何使用

Spring Boot 中的 RabbitMQ 是什么&#xff0c;如何使用 简介 RabbitMQ 是一个开源的消息队列系统&#xff0c;它通过 AMQP&#xff08;高级消息队列协议&#xff09;来实现消息的传递。Spring Boot 是目前非常流行的 Java 开发框架&#xff0c;它提供了很多便利性的功能&…

VS Code C++迎来套件更新,注释定义方便快捷

近日微软对VS Code C进行套件的更新&#xff0c;新加入名为“Call Hierarchy”的功能&#xff0c;而这个**ERP**功能可以让用户更加直观地理解代码函数之间的引用关系&#xff0c;同时该版本还让开发者更容易复制注释与定义&#xff0c;提升此类内容编写时的自由度。 据悉&am…

蓝牙音频数据歌词提取器设计方法

v hezkz17进数字音频系统研究开发交流答疑 解决方法&#xff1a; 通过蓝牙接收来自手机音乐播放器的数据&#xff0c;能得到哪些歌曲信息? 如何获取歌曲名&#xff1f;歌词信息&#xff1f; 2023/6/27 10:21:42 通过蓝牙接收手机音乐播放器的数据&#xff0c;可以获取以下歌曲…

VMware 虚拟机下ubuntu命令行(parted)扩容方法,包括一些坑

前言 搜素了半天关于ubuntu扩容的方法&#xff0c;基本都是用gparted&#xff0c;可是本人的虚拟机抽风无法使用这个工具&#xff0c;提示tmp.mount不存在&#xff0c;同时Can’t connect to “”&#xff0c;找了半天并没有找到好的解决方案&#xff0c;先占坑。使用命令行扩…

如何实现Tomcat部署及优化

目录 一、Tomcat概述 Tomcat中的核心组件&#xff08;用于Java环境&#xff09; Tomcat两种优化 Tomcat Web服务 JSP容器&#xff08;翻译功能&#xff09; Servlet处理动态页面 二、Tomcat内部工作流程 三、Tomcat功能组件结构 Connector连接器 Container容器 四个…

openlayers controls基础知识

控件是一个可见的小部件&#xff0c;其 DOM 元素位于屏幕上的固定位置。 它们可以涉及用户输入&#xff08;按钮&#xff09;&#xff0c;或者仅提供信息&#xff1b; 位置是使用 CSS 确定的。 默认情况下&#xff0c;它们放置在 CSS 类名为 ol-overlaycontainer-stopevent 的容…

小白月赛C-方豆子

方豆子 题目描述 阿宁最近对吃豆子感兴趣&#xff0c;阿宁想要用程序输出一下&#xff0c;但是图形化对于阿宁来说太难。因此他决定用字符&#xff0c;并且是方形的模样。 给一个正整数n&#xff0c;输出n级好豆子。 题解&#xff1a;每个豆子都由四个豆子组成&#xff0c…

Vue之计算属性(computed)

文章目录 前言一、计算属性二、实例1.缓存优势计算属性内部的属性&#xff0c;在第一次访问时会读取它的值&#xff0c;然后存入缓存 2.简写简写其实就是当确定计算属性内的属性只读不更改&#xff0c;即只有get函数没有写set函数时简写的方式 3.补充 总结 前言 计算属性 一、…

Odoo16 微信公众号模块开发示例

Odoo16 微信公众号模块开发示例 本模块基于 aiohttp asyncio 进行异步微信公众号接口开发, 仅实现了部分 API 仅供学习参考&#xff0c;更完善的同步接口请参考&#xff1a;wechatpy 或 werobot&#xff0c;可用来替代 模块中的 wechat client。 业务需求 小程序中需要用户…

std::bind的讲解

一、在讲解std::bind之前&#xff0c;我们先来复习下std::function。 std::function 是一个“可调用对象”包装器&#xff0c;是一个类模板&#xff0c;可以容纳除了类成员函数指针之外的所有可调用对象&#xff0c;它可以用统一的方式处理函数、函数对象、函数指针&#xff0…

async创建异步任务

想让线程之间可以有两个数据的交换。之前一直采用的是全局变量互斥锁的方法。到目前为止&#xff0c;线程运行完之后还无法提供一个返回值。 此时引入 future 和 async。 sync为同步的意思&#xff0c;async为异步任务。同步任务前文已经结束过&#xff1a;他指的是两个人协同…

SpringBoot 日志文件:日志的作用?为什么要写日志?

文章目录 &#x1f387;前言1.日志长什么样子&#xff1f;2.自定义打印日志2.1 在程序中得到日志对象2.2 使用日志对象打印日志 3.日志级别3.1 日志级别的分类与使用3.2 日志级别有什么用呢&#xff1f;3.3 日志级别的设置 4.日志持久化保存5.更方便的日志输出5.1 添加 lombok …

Celery分布式异步框架

Celery异步任务框架 """ 1&#xff09;可以不依赖任何服务器&#xff0c;通过自身命令&#xff0c;启动服务(内部支持socket) 2&#xff09;celery服务为为其他项目服务提供异步解决任务需求的 注&#xff1a;会有两个服务同时运行&#xff0c;一个是项目服务&a…

Android 自定义View和事件分派 图解

Android 自定义View和事件分派 图解_猎羽的博客-CSDN博客https://blog.csdn.net/feather_wch/article/details/131487012

并查集和LRUCache

目录 1. 并查集 1.1原理 1.2实现 1.3应用 1.3.1省份数量 1.3.2等式方程的可满足性 2.LRUCache 1.概念 2.实现 3.JDK中类似LRUCahe的数据结构LinkedHashMap 4.LRU Cache的OJ 1. 并查集 1.1原理 把不同的元素划分到不想交的集合.开始时,每个元素自成一个单元集合,然后…

OSGI-Bundle:概念和入门

OSGI(Open Service gateway initactive)是java动态化模块系统的一系列规范。即一个系统应用上可以有很多可插拔的小应用&#xff0c;整个应用能运行和协调&#xff0c;小应用之间也可以相互交互完成业务需求。 Bundle: bundle 是以 jar 包形式存在的一个模块化物理单元&#x…