leetcode刷题171 Excel表列序号 Excel Sheet Column Number(简单) Python Java

Excel列名转数字:从进制转换到健壮算法的深度解析 进制转换是计算机科学中处理数据编码与表示的基础技术,其核心原理是将一个数值从一种基数系统映射到另一种。在工程实践中,这种转换不仅关乎算法效率,更涉及对问题边界的精确建模,以确保代码的健壮性。例如,在处理Excel列名(如“AB”)转换为数字序号时,看似是简单的二十六进制转十进制,实则需处理从1起始(A=1)而非标准0起始的偏移量。通过模拟计算过程并抽象为数学模型,可以推导出高效的迭代算法(result = result * 26 + current_value),广泛应用于数据处理、表格解析及编码解码等场景 阅读详情

题目大意:

给定一个Excel表格中的列名称,返回其相应的列序号。

例如,

    A -> 1
    B -> 2
    C -> 3
    ...
    Z -> 26
    AA -> 27
    AB -> 28 
    ...

示例 1:

输入: "A"
输出: 1

示例 2:

输入: "AB"
输出: 28

示例 3:

输入: "ZY"
输出: 701

从A-Z对应1-26,当列标题进一位变成AA时,列对应的数字变成27。这是一个26进制转换成10进制的问题,不过A对应的是1而不是0。ZY=26*26+25*1=701

class Solution(object):
    def titleToNumber(self, s):
        """
        :type s: str
        :rtype: int
        """
        result = 0 
        for letter in s:
            result = result * 26 + ord(letter) - ord('A') + 1#转换之后把大写字母对应的数字转化为小写字母。
            # ord()函数用来获得字符对应的ASCII数值
        return result

知识点:

ord() 函数 是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值,如果所给的 Unicode 字符超出了你的 Python 定义范围,则会引发一个 TypeError 的异常。

语法:

ord( c )
c – 字符。
返回值:对应的十进制整数。

实例:

>>>ord('a')
97
>>>ord('b')
98
>>>ord('c')
99

 

以下是Java版本:

分析如下:

本题就是A-Z代表26进制的数,计算出26进制字符串对于的10进制数. 

这里用到一个数学函数Math.pow(a,b)=a的b次幂,即Math.pow(26,len-1-i)代表26的(len-1-i)次幂

//类似于计算26进制数的10进制结果
public class Solution {
    public int titleToNumber(String s) {
        //s中字符个数
        int len=s.length();
        //保存最终结果
        int result=0;
        //从个位数开始累加计算
        for(int i=len-1;i>=0;i--){
            //Math.pow(a,b)是计算a的b次幂,这里底数是26
            result+=(s.charAt(i)-'A'+1)*Math.pow(26,len-1-i);
        }
        return result;
    }
}

本质就是将一个26进制的数,转换成10进制的数。

public class Solution {
    public int titleToNumber(String s) {
        int result = 0;
        for (int i = 0; i < s.length(); i++) {
            result = result * 26 + (s.charAt(i) - 'A' + 1);
        }
        return result;
    }
}

 

【信息科学与工程学】【数据科学】数据科学领域 第六篇 算法设计 07 堆、栈、表、矩阵、集合、队列、数组、字符串、树、图、动态规划、结构体、元组的算法01 当前段必须包含所有字符的最后出现位置。1. 字符串分割成最多片段2. 基因序列功能域划分3. 文本段落划分4. 音频声道分离5. 图像色彩分区6. 社交网络社群划分7. 蛋白质结构域8. 音乐乐章分段9. 代码模块划分10. 章节划分特征:一次扫描,贪心确定边界。 阅读详情

相关推荐

如何将列的数字编号,转化为EXcel的字母表示的列编号

其中,n是要转换的列编号,colName是转换后的Excel列编号。该函数的实现方式与上面Python的实现类似,将10进制的列编号转换为26进制的字母表示。其中,n是要转换的列编号,string是转换后的Excel列编号。该函数的实现方式是将10进制的列编号转换为26进制的字母表示。Excel中的列编号是用字母来表示的,从A开始,到Z结束,然后是AA、AB、AC…以此类推,例如第1列是A,第2列是B,第27列是AA,第28列是AB,以此类推。

zhangzhechun的专栏 2232

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: 输入: column...

夹击妹抖 301

振动能量采集技术:从原理到实战,破解物联网供电难题

能量采集技术旨在捕获环境中的废弃能量(如机械振动、热能、光能)并将其转化为电能,其核心原理在于通过压电、电磁、静电或摩擦电等物理效应实现能量形式的转换。这项技术的核心价值在于为物联网(IoT)中难以布线或更换电池的分布式传感器节点、植入式医疗设备等提供近乎永续的电力解决方案,从而解决物联网部署的“最后一米供电”瓶颈。其应用场景广泛覆盖工业预测性维护、结构健康监测、可穿戴设备及消费电子等领域。本文聚焦于振动能量采集这一细分方向,深入剖析了压电式、电磁式、电容式及摩擦纳米发电机(TENG)等主流技术路线的实战考

weixin_42660494的博客 566

Excel列与数字的转换

Excel列数字转换

rgbhi的博客 2861

Ansys Zemax与Speos协同设计:HUD系统从光学优化到驾驶模拟的全流程解析

本文详细解析了如何利用Ansys Zemax与Speos这对“黄金搭档”进行HUD系统的协同设计。流程始于Zemax进行核心光学架构与像差优化,奠定性能基础;随后将设计无缝导入Speos,通过HUD光学分析模块进行量化验证;最终在虚拟驾驶环境中进行沉浸式模拟,评估实际视觉体验与系统集成效果,实现从光学优化到驾驶模拟的全流程闭环。

weixin_29201933的博客 272

LVGL按键触发回调函数的完整流程

如果是我的话我会怎么写:例如按键,我先定义一个结构体里面包含ID,事件名等和回调函数的链表节点结构体里面有具体函数的指针,也有指向下一个回调函数的链表节点的指针,初始化一个结构体变量的,通过BSP层来驱动触摸屏幕,再通过中间层与被按下时就会判断是长按还是短按还是其他,改变变量的事件例如:改成长按,生成事件包后再注册你长按的回调函数链表节点,再根据变量的事件到链表中遍历最后实现功能.父容器监听所有子列表项的点击事件,无需为每个列表项单独注册回调。的回调,打印所有事件日志,观察事件触发顺序。

solomonzw的博客 3239

Excel 表列序号java

给你一个字符串 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 示例 4: 输入: columnTi

weixin_43824233的博客 406

2025年春科研论文写作指导(如何写好科研论文)研究生网课期末考试

希望能帮助到大家

beijieweiyu的博客 5786

通关算法题之 ⌈字符串⌋

设计一个支持 , , 操作,并能在常数时间内检索到最小元素的栈。实现 类: 使用两个栈,一个正常的按照栈的逻辑进行压入和弹出操作,另一个存储最小值。 225. 用队列实现栈 请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(、、 和 )。实现 类:注意: 一个队列在模拟栈弹出元素的时候只要将队列头部的元素(除了最后一个元素外) 重新添加到队列尾部,此时在去弹出元素就是栈的顺序了。 232. 用栈实现队列 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作

阿东的学习记录 926

小波变换完全指南:从原理到实践的深度解析

在信号处理领域,傅里叶变换长期以来一直是频域分析的主要工具。然而,傅里叶变换存在一个根本性的局限:它只能告诉我们信号中包含哪些频率成分,却无法告诉我们这些频率成分在什么时刻出现。这就像是你知道一首歌用了哪些音符,却不知道这些音符的演奏顺序。小波变换(Wavelet Transform) 应运而生,它完美地解决了这个问题。小波变换不仅能够提供频率信息,还能同时提供时间信息,实现了信号的时频联合分析。本文将带你从零开始,深入理解小波变换的原理、实现和应用。傅里叶变换的定义如下: 它使用正弦和余弦这样的全局基函数

电脑管家 209

论文阅读:2024 ACM CCS “Do Anything Now”: Characterizing and Evaluating In-The-Wild Jailbreak Prompts on

大语言模型(LLMs)的滥用问题引起了公众和大语言模型供应商的高度关注。有一种特殊的对抗性提示,叫做越狱提示,它已成为绕过防护措施、让大语言模型生成有害内容的主要攻击手段。在这篇论文中,作者使用新框架JailbreakHub,对2022年12月至2023年12月期间的1405个越狱提示进行了全面分析。作者识别出131个越狱提示社区,发现了越狱提示的独特特征以及主要攻击策略,比如提示注入和权限提升。

CSPhD-winston的博客 1411

编程题 给一个字符串、例如 “ababc”要求返回

编程题 给一个字符串、例如 “ababc”要求返回 题目:给一个字符串、例如 “ababc”要求返回“ab”. 因为“ab”连续重复出现且最长。 用C/C++语言写一函数完成该算法,给出复杂度 如果有多个答案就返回第一个了像:ababcdcd, 输出是就是ab了复杂度分析:i = 1for (i to N){ for (0...

weixin_30855761的博客 719

[特殊字符] RK3588 平台上基于 Panfrost 的 Mesa 驱动编译全过程

摘要: 本文详细记录了在RK3588平台(Ubuntu 20.04 aarch64)上编译基于Panfrost的Mesa驱动的全过程。内容包括:1)系统依赖安装;2)libdrm编译;3)Mesa配置参数优化;4)LLVM 15与SPIRV工具链的安装方法;5)SPIRV-Tools版本问题的解决方案;6)最终编译命令及常见错误处理。关键点在于正确设置工具链路径(PKG_CONFIG_PATH)和版本匹配(LLVM 15对应SPIRV-LLVM-Translator v15.0.0),推荐将组件安装在/op

梁俊星的博客 940

【leetcode】171. Excel Sheet Column Number

一、题目描述 Given a column title as appear in an Excel sheet, return its corresponding column number. For example: A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28

小拳头的博客 352

华为OD机试真题 新系统 2026-04-26 Python&JS 实现【最大化游戏试玩资格分发】

新研发了一台游戏设备可以面向用户接受试玩。现有 n 个试玩申请,每个试玩有开始时间和结束时间。作为协调员,为了能让更多人体验到游戏,你需要对试玩申请进行选择,使得:

MISAYAONE的博客 289

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

力扣171-Excel表列序号

参考文章 https://leetcode-cn.com/problems/excel-sheet-column-number/solution/c-0ms-by-epecker/ 其实没有用到哈希表。

南北粉面馆 247

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Excel列名转数字:从进制转换到算法实现与工程实践

进制转换是计算机科学中处理数据表示与编码的基础概念,其核心原理在于不同数位上的权重累加。在数据处理与算法面试中,字符串与数字间的转换是高频考点,它体现了对基础数据结构和编码规则的理解。Excel列名(如“AB”)到数字的转换,正是一个经典的“偏移进制”应用场景,它并非标准的26进制,而是从1开始计数的特殊表示法。理解其原理,掌握高效的迭代算法(如霍纳法则),对于解决LeetCode相关题目、优化数据处理流程以及开发涉及表格处理的工具(如使用Apache POI或openpyxl)具有直接的工程价值。本文以L

weixin_34295316的博客 288

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Excel列名转数字:深入理解二十六进制转换与算法实现

进制转换是计算机科学中的基础概念,它描述了如何用有限的符号系统表示数值。其核心原理在于位权计数法,即一个数字在不同位置代表不同的值。在计算机领域,二进制、八进制、十六进制与十进制的转换是数据表示与处理的基础,具有极高的技术价值,广泛应用于编码、加密、数据压缩和内存寻址等场景。本文聚焦于一种特殊的二十六进制应用——Excel列名系统。与标准进制不同,该系统使用字母A-Z对应数字1-26,巧妙地避开了数字0,这一设计在**字符串处理**和**面试算法**中成为经典考点。通过剖析其**进制转换**本质,本文旨在帮

weixin_34208185的博客 327

HarmonyOS 6基于ArkTS状态驱动开发,实现多Tab页面切换与组件刷新,通过变量管控弹窗、动画、列表数据,适配鸿蒙标准交互渲染逻辑

程序员接单、外包服务、需求发布、技术成果展示——这些承载着开发者自由职业梦想的服务,在远程办公浪潮下反而焕发了新的热潮。从电商APP开发到企业官网建设,从数据大屏可视化到AI对话机器人,从微信小程序商城到区块链DAPP,代码外包已经成为一个庞大的自由职业市场。然而外包接单长期依赖猪八戒、一品威客等泛平台,缺乏针对程序员的专业化功能——项目等级评级、技术栈区分(Flutter/Vue3/ECharts/uni-app/Python/Java/React/Go/Unity/Solidity)、技术栈接单、技能图

qq63160596的博客 128

字符串中查找子串返回序号

在字符串t中查找子串p时,求第一次匹配的序号。 算法思想:假设t和P是两个给定的串,在t中寻找与p相同子串的过程叫做模式匹配,一般t称为正文,p称为模式,t的长度大于p的长度。如果在t中找到等于p的子串,则匹配成功,否则匹配失败。 设字符串t为t[n],字符串p为p[m],其中n,m分别为字符串t和p的长度,实现模式匹配的简单算法为:对于i=0,1,2,..n-m,依次进行下面匹配步...

weixin_30606669的博客 882

leetcode 第171题 Excel表列序号

给定一个Excel表格中的列名称,返回其相应的列序号。 例如, A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ... 示例 1: 输入: "A" 输出: 1 示例 2: 输入: "AB" 输出: 28 示例 3: 输入: "ZY" 输出: 701 int titleToNumber(char * s) { int i; int

HHsHH1234的博客 322

一道面试题,把excel的列的名称转换为数字

这是一道某公司的上机面试题: microsoft excel 中栏目是用 A,B,C...Z;AA,AB,...ZZ ... ZZZZ ....这样表示序列的它对应是这样 0,1,2,...25;26,27...701 ...475253

justin_bkdrong的专栏 3021

LeetCode-Python-171. Excel表列序号

给定一个Excel表格中的列名称,返回其相应的列序号。 例如, A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ... 示例 1: 输入: "A" 输出: 1 示例2: 输入: "AB" 输出: 28 示例3: ...

Keep Coding 907

C++Leetcode171:Excel表列序号

题目 给定一个Excel表格中的列名称,返回其相应的列序号。 例如, A -&gt; 1 B -&gt; 2 C -&gt; 3 … Z -&gt; 26 AA -&gt; 27 AB -&gt; 28 … 示例 1: 输入: “A” 输出: 1 示例 2: 输入: “AB” 输出: 28 示例 3: 输入: “ZY” 输出: 701 思路 1、哈希映射。将A~~Z和1~26相应射到map中。然后...

weixin_43434305的博客 857

Excel表列序号(简单实现)

题目 给定一个Excel表格中的列名称,返回其相应的列序号。 例如: A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ... 示例 : 输入: “ZY” 输出: 701 注意点 1、可以理解为26进制转10进制; 2、通过s.charAt(i) - ‘A’ + 1,则可求出26进制对应字符所对应的10进制数字; 3、Z(26)、Y(25),ZY= 26*26 + 25 = 701。 实现 public in

weixin_43857345的博客 1033

百度面试题-类似Excel列名的位置查找问题

原文:http://topic.csdn.net/u/20080923/11/ee117de0-38ec-4d34-802d-64c7a0f34b7f.html序列Seq=[a,b,…z,aa,ab…az,ba,bb,…bz,…,za,zb,…zz,aaa,…] 类似与excel的排列,任意给出一个字符串s=[a-z]+(由a-z字符组成的任意长度字符串),请问s是序列Seq的第几个火龙果:A:

老紫竹的专栏 2632
上一篇: leetcode刷题125 验证回文串 Valid Palindrome(简单) Python Java
下一篇: leetcode刷题172 阶乘后的零 Factorial Trailing Zeroes(简单) Python Java
SpringRolls
博客等级 码龄9年 73粉丝 129原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值