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

力扣刷题(第三十七天)

灵感来源 

- 保持更新,努力学习

- python脚本学习

Excel 表列序号

解题思路

Excel 表格的列名称采用字母表示,其规则类似于 26 进制数。具体规则如下:

  • 列名称由 A-Z 的字母组成,其中 A 对应 1,B 对应 2,依此类推直到 Z 对应 26。
  • 当列数超过 26 时,会使用多字母组合表示,例如 AA 对应 27,AB 对应 28,依此类推。
  • 计算列名称对应的序号时,可将其视为以 26 为基数的进制转换问题。每个字母的位置决定了其权重,最右边的字母权重为 26⁰,向左依次递增。
    class Solution:def titleToNumber(self, columnTitle: str) -> int:result = 0for char in columnTitle:# 计算当前字符对应的数值(A=1, B=2, ..., Z=26)value = ord(char) - ord('A') + 1# 更新结果,相当于将之前的结果乘以26再加上当前字符的值result = result * 26 + valuereturn result

逐行解释

class Solution:def titleToNumber(self, columnTitle: str) -> int:# 初始化结果变量,用于累加计算列序号result = 0# 遍历输入的列名称中的每个字符for char in columnTitle:# 计算当前字符对应的数值(A=1, B=2, ..., Z=26)# ord(char) 获取字符的ASCII码值,减去'A'的ASCII码值并加1value = ord(char) - ord('A') + 1# 更新结果值,相当于将之前的结果乘以26(进制权重)再加上当前字符的值# 类似于十进制转二进制的计算方式,每左移一位相当于乘以基数(这里是26)result = result * 26 + value# 返回最终计算得到的列序号return result

http://www.xdnf.cn/news/8875.html

相关文章:

  • Linux之概述和安装vm虚拟机
  • Oracle附加日志概述
  • Day 31 训练
  • 哪款云手机支持安卓12系统?掌派云手机-性价比之选
  • Threejs 透明模型渲染嵌套以及深度测试解决共存问题
  • 什么是ESLint?它有什么作用?
  • 10G/25G PCS only mode for CoaXPress Over Fiber
  • 9. Spring AI 各版本的详细功能与发布时间整理
  • 华为OD机试真题——出租车计费/靠谱的车 (2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
  • Spring Cloud Sleuth与Zipkin深度整合指南:微服务链路追踪实战
  • Python实战:轻松连接与高效操作Elasticsearch
  • HDFS存储原理与MapReduce计算模型
  • 嵌入式学习笔记——day27
  • 奈雪小程序任务脚本
  • 计算机病毒的发展历程及其分类
  • Lua 脚本在 Redis 中的运用-22
  • leetcode 39. Combination Sum和40. Combination Sum II
  • 容器化:用于机器学习的 Docker 和 Kubernetes
  • 正则表达式全解:一文学会正则表达式【附在线正则表达式练习网站】
  • Android事件分发学习总结
  • SpringBoot-配置文件
  • MLA:Transformer的智能变形金刚——解密多头潜在注意力的进化密码
  • Linux `|` 管道操作符深度解析与高阶应用指南
  • Leetcode 刷题记录 11 —— 二叉树第二弹
  • BTC官网关注巨鲸12亿美元平仓,XBIT去中心化交易平台表现稳定
  • 深入理解设计模式之建造者模式
  • 数组染色
  • RabbitMQ 断网自动重连失效
  • 3d世界坐标系转屏幕坐标系
  • 解锁未来AI:使用DACA模式和Agentic技术提高开发效率