LeetCode | 168.Excel表列名称

news2025/2/25 21:27:40

在这里插入图片描述
这道题一开始以为是简单的进制转换问题,用的以往的思路,对于一般性的进制转换题目,只需要不断地对 columnNumber 进行 % 运算取得最后一位,然后对 columnNumber 进行 / 运算,将已经取得的位数去掉,直到 columnNumber 为 0 即可。
但是这里可不是这样,比如 26 是 Z,52 是 AZ,因为这里是从 1 开始表示的,没有从 0 开始。所以我就进行了一个判断,因为出现 0 的情况只会在 columnNumber 能整除 26 的时候出现,其他情况下还是可以使用以往的思路的,

class Solution(object):
    def convertToTitle(self, columnNumber):
        """
        :type columnNumber: int
        :rtype: str
        """
        ans = ''
        # 使用字典推导式创建映射字典
        mapping = {i - 64: chr(i) for i in range(65, 91)}
        while columnNumber > 0:
            if columnNumber % 26 == 0:
                ans = mapping[26] + ans
                columnNumber -= 26
            else:
                ans = mapping[columnNumber % 26] + ans
            columnNumber = columnNumber // 26
        return ans

在这里插入图片描述
题解用的是数学的方法,很巧妙,总体的意思就是和正常 0~25 的 26 进制相比,本质上就是每一位多加了 1。假设 A == 0,B == 1,那么 AB = 26 * 0 + 1 * 1,而现在 AB = 26 * (0 + 1) + 1 * (1 + 1),所以只要在处理每一位的时候减 1,就可以按照正常的 26 进制来处理。

在这里插入图片描述

class Solution(object):
    def convertToTitle(self, columnNumber):
        """
        :type columnNumber: int
        :rtype: str
        """
        ans = ''
        # 使用字典推导式创建映射字典
        mapping = {i - 64: chr(i) for i in range(65, 91)}
        while columnNumber > 0:
            a = (columnNumber - 1) % 26 + 1
            ans = mapping[a] + ans
            columnNumber = (columnNumber - a) // 26
        return ans

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

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

相关文章

ABB 和PLC ProfinN 通信

1,设置IP 地址 2, 设置站名称 3, 修改传送区大小 4,配置DI DO 5,导出 6,安装gsd 文件 7,建立通信

LeetCode --- 132双周赛

题目列表 3174. 清除数字 3175. 找到连续赢 K 场比赛的第一位玩家 3176. 求出最长好子序列 I 3177. 求出最长好子序列 II 一、清理数字 这题直接根据题目,进行模拟即可,大体的思路是遍历字符串,遇到字母就加入答案,遇到数字就…

android studio 自定义类注释模版

perferences>File and Code Templates>Class 填写: /*** ClassName: ${ClassName}* Description: ${Description}* Author: ${Author}* CreateDate: ${CreateDate}* UpdateUser: ${UpdateUser}* UpdateDate: ${UpdateDate}* UpdateRemark: ${UpdateRemark}* …

Spring boot 启动报:Do not use @ for indentation

一、使用maven插件动态切换配置时出现报错 二、配置文件及pom 2.1 配置文件结构 2.2 application.yml spring: # 根据环境读取配置文件(手动) # profiles: # active: dev# 根据环境读取配置文件(通过勾选maven插件)profiles…

Python时间序列分析库

Sktime Welcome to sktime — sktime documentation 用于ML/AI和时间序列的统一API,用于模型构建、拟合、应用和验证支持各种学习任务,包括预测、时间序列分类、回归、聚类。复合模型构建,包括具有转换、集成、调整和精简功能的管道scikit学习式界面约定的交互式用户体验Pro…

如何应对生活中的不确定性:仁者安仁,知者利仁。

有较高自尊水平的人,接近于孔子说的:仁者。 ——— 有着稳定的高自尊,无论外在环境如何变化,对其影响都不大,他能够愉快地生活。 相反:一个人处于低自尊状态,就会活得很痛苦,对自己…

俄罗斯Yandex推广投放如何开户?Yandex广告开户和代运营推广流程详解_俄罗斯_受众_搜索引擎

在俄罗斯进行Yandex广告推广是一种有效的在线营销方式,特别是针对俄罗斯市场。Yandex是俄罗斯最受欢迎的搜索引擎,类似于Google在全球范围内的地位。以下是通过Yandex广告推广的一般步骤,以及如何通过上海上弦进行广告开户和代运营。 1. Yan…

Stringboot

一、概述 springboot是spring家族中的一个全新框架,用来简化spring程序的创建和开发过程。在以往我们通过SpringMVCSpringMybatis框架进行开发的时候,我们需要配置web.xml,spring配置,mybatis配置,然后整合在一起&…

明天二战六级

明天二战六级,各位程序员们,加油

活动集锦 | 英码科技积极参与行业盛会,AI赋能城市数字化转型

在当今数字经济时代,城市全域数字化转型已经成为提升城市管理效能、优化资源配置、推动经济发展的重要手段。英码科技始终致力于为企业打造高效、低成本的行业应用方案,助力企业实现数字化转型。近日,英码科技受邀参加了多场行业展示活动&…

[Java基本语法] 继承与多态

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏:🍕 Collection与数据结构 (92平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 🧀线程与…

zabbix老版本3.0.14迁移

由于之前zabbix版本过老,一直未能升级,现在一台老的服务器需要迁移,服务器较老,就不更新,先迁移数据, 下载地址: Zabbix Official Repository http://repo.zabbix.com/zabbix/3.0/rhel/7/x86…

R 文件优化插件:Binary XML file in layout Error inflating class

场景一:构造函数缺失 问题 自定义布局(FlagmentLayout)加载自定义属性失败,导致广告显示异常,甚至是闪退~ InflateException 在 Android 中我们遇到的通常发生在自定义 View 创建中,动态加载…

【安装笔记-20240614-Linux-在 OpenWrt 上安装 filebrowser 支持文件分享】

安装笔记-系列文章目录 安装笔记-20240614-Linux-在 OpenWrt 上安装 filebrowser 支持文件分享 文章目录 安装笔记-系列文章目录安装笔记-20240614-Linux-在 OpenWrt 上安装 filebrowser 支持文件分享 前言一、软件介绍名称:filebrowser主页官方介绍特点 二、安装步…

Ubuntu如何添加用户环境变量

一,简介 在工作中,需要将某个环境变量添加到用户环境变量中,方便使用。 要将 SOF_WORKSPACE~/work/sof 添加到用户的环境变量中,需要将该设置添加到用户的 shell 配置文件中,例如 ~/.bashrc(对于 Bash 用…

vue 渲染函数 h jsx

h 是什么 vue 提供的创建虚拟 DOM 节点 (vnode)的函数。 https://cn.vuejs.org/api/render-function.html#h jsx 是什么 JSX是 JavaScript XML(HTML)的缩写,表示在 JS 代码中书写 HTML 结构。简单理解就是: JSXjavascript xml&am…

线代知识点总结

目录 一.初等行/列变换 1.计算行列式时,行列变换都可 2.求矩阵的秩时,行列变换都可 3.解线性方程组时,仅能使用初等行变换 4.判定解的情况,单纯求r(A),r(A,b)的过程行列变换都可 5.求向量组极大无关组、线性表出关系&#x…

神经网络学习1—nn.Module

nn.module 为所有神经网络提供了一个模板 import torch.nn as nn import torch.nn.functional as Fclass Model(nn.Module):def __init__(self):super(Model, self).__init__()self.conv1 nn.Conv2d(1, 20, 5)self.conv2 nn.Conv2d(20, 20, 5)def forward(self, x):x F.rel…

淘宝评论电商API接口,解读商品评论

随着互联网的不断发展,电子商务在我国得到了迅速普及,淘宝网作为我国最大的网上购物平台,每天都有数以亿计的消费者在此进行购物。而消费者在购物时,最关心的问题之一就是商品的真实评价。为了解决这一问题,淘宝网推出…

10.错误处理

标题 一、概述二、panic!与不可恢复错误2.1 出错时2.2 示例2.3 panic!的 backtrace 三、Result 与可恢复的错误3.1 引入3.2 错误示例3.3 传播错误1)概念2)传播错误示例3)传播错误的简写:?运算符 一、概述 Rust将错误分…