【每日算法】【168. Excel表列名称】

news2024/11/24 8:34:08

在这里插入图片描述


☀️博客主页:CSDN博客主页
💨本文由 我是小狼君 原创,首发于 CSDN💢
🔥学习专栏推荐:面试汇总
❗️游戏框架专栏推荐:游戏实用框架专栏
⛅️点赞 👍 收藏 ⭐留言 📝,如有错误请指正
📆 未来很长,值得我们全力奔赴更美好的生活✨


Unity 小科普

老规矩,先介绍一下Unity的科普小知识:​​​​​​

  • Unity 是行业领先的实时3D开发平台。
  • 包括游戏开发,电影,AR/VR,虚拟现实在内的所有创作者,可以将梦想照进现实。
  • Unity提供了一套完整完善的软件解决方案,可用于创作,运营和模拟任何2D和3D的内容,进本全平台支持。

题目

给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。

链接

简单-168. Excel表列名称

例如:

A -> 1
B -> 2
C -> 3

Z -> 26
AA -> 27
AB -> 28

示例 1:

输入:columnNumber = 1
输出:“A”

示例 2:

输入:columnNumber = 28
输出:“AB”

示例3:

输入:columnNumber = 701
输出:“ZY”

方法一

通过取余法,当作26进制进行转换

样例

![在这里插入图片描述](https://img-blog.csdnimg.cn/0a756028547f68a76ab81be19d656.png## 注意

1对应A,26对应Z,看起来像是27进位,似乎应该每次余27,每次除以27
但是,因为1对应A,而27对应的也是A,1%27=1,27%27=0,同一个A余数不同,构成矛盾。
那么除以26行不行?
1%26=1,27%26=1,看起来似乎可以保持一致。
但是当26%26的时候,为0,可是实际的值却为Z,又构成了新的矛盾。

解决

我们需要调整对应关系,让0对应A,25对应Z,26对应AA,这样就构成了一个正常的26进位。
这样对于A:0%26=0,对于AA:26%26=0,在余数这里可以保持一致。
新的对应关系是原先对应关系-1得到,所以在每次操作的时候,都要让columnNumber-1,得到新的对应关系

代码

 public string ShiToErShiLiu(int columnNumber)
 {
      string str = "";

      while (true)
      {
          columnNumber -= 1;
          int remainder = columnNumber % 26;


          char val = (char)(remainder + 65);

          str += val;

          columnNumber /= 26;
          if (columnNumber == 0)
          {
              break;
          }
      }
      return Reversal(str);
  }

  private static string Reversal(string str)
  {
      StringBuilder sb = new StringBuilder(str.Length);
      for (int i = str.Length - 1; i >= 0; i--)
      {
          sb.Append(str[i]);
      }
      return sb.ToString();
  }

链接

我的LeetCode

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

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

相关文章

Vue-ECharts使用说明

Vue-ECharts使用说明 vue-echarts 是在Apache Echarts官网的echarts使用方法上二次封装的组件,方便我们创建echarts图应用到我们的项目中。 参考: vue-echarts 官网:https://github.com/ecomfe/vue-echarts Apache Echarts 官网:h…

推荐一款比Flink CDC更好用的免费CDC工具

很多中大型企业都希望选择一款足够轻量好用的CDC工具,而且最好是小白用户都能使用的CDC工具,今天就推荐一款小白都能安装并立即使用的CDC工具给大家。 CDC(Change Data Capture)是一种用于捕获和传递数据库实时变更的技术。它允许…

怎样通过大数据获客?

零售商知道他们需要大数据,并且正在向前冲锋以进入游戏。但许多零售商继续面临挑战。应该收集什么类型的数据?应如何使用数据来生成见解?如何衡量投资回报率? 101data最近对美国各种规模的零售商进行了调查。当被问及哪些流程将受…

YOLOv5/v7 添加注意力机制,30多种模块分析②,BAM模块,CBAM模块

目录 一、注意力机制介绍1、什么是注意力机制?2、注意力机制的分类3、注意力机制的核心 二、BAM模块1、BAM模块的原理2、实验结果3、应用示例 三、CBAM模块1、CBAM模块的原理2、实验结果3、应用示例 大家好,我是哪吒。 🏆本文收录于&#xf…

测试之路-我曾经跨过无数Bug,也怼过各大佬开发

前言: 这是我从事测试的第五个年头的开端,忙忙碌碌到头发现好像忙了个寂寞。也忘了最初走向这条不归路的初心是什么。当时14年学完计算机出来找工作,看着茫茫人海,第一反应就是退缩,该找什么工作?开发&…

sparkSQL的使用

sparksql只能处理结构化数据 基于rdd构建dataframe对象 from pyspark.sql import SparkSession from pyspark.sql.types import StructType, StringType, IntegerTypeif __name__ __main__:spark SparkSession.builder.appName(test).master(local[*]).getOrCreate()sc spa…

JS-Object无序问题

1、 背景 在开发图表功能时,由于历史原因,后端返回的图表数据如下: 是对象类型,键为日期,值为日期和当天日期的值。在H5端、微信小程序端运行结果正常,结果到了百度小程序突然发现,这个值的顺…

IDEA2021.1.3版本lombok插件--代码爆红问题解决

最近,突然心血来潮将自己工作中开发使用的idea升级到2021.1.3版本,安装成功后,打开代码发现有关get、set方法全部爆红,不用想,肯定是Lombok插件问题,通过setting->plugin里面搜索Lombok居然不存在&#…

终于有人把Linux系统收发网络数据包的过程讲清楚了!

Linux 服务器收到网络数据包,需要经过哪些处理,一步步将数据传给应用进程的呢?应用进程发送数据包时,Linux 又是如何操作将数据包发送出去的呢?今天我们就来聊聊这个话题。 在准备好接收网络数据包之前,Lin…

Mysql数据库入门基础篇--sql语句简单使用

Mysql数据库入门基础篇--sql语句简单使用 🔻一、数据库创建、删除、选择1.1 🍃 create database 创建数据库1.2 🍃 使用 mysqladmin 创建数据库1.3 🍃 drop 命令删除数据库--一般不建议在数据库执行delete、drop等命令1.4 &#x…

redis入门学习

redis基本数据结构 redis的返回值 在设置一个key-value对的时候通常会返回ok告诉我们操作成功了,1代表成功,0代表失败,通常会根据返回值的不同处理不同的业务逻辑用redis.cn来查看命令 全局操作 flushdb清空内存数据库keys *展示所有存储…

第十八章:MySQL8其他新特性

第十八章:MySQL8其他新特性 18.1:MySQL8新特性概述 ​ MySQL从5.7版本直接跳跃发布了8.0版本 ,可见这是一个令人兴奋的里程碑版本。MySQL 8版本在功能上做了显著的改进与增强,开发者对MySQL的源代码进行了重构,最突出…

2023-06-08 Unity AssetBundle1——AB包介绍与使用

文章目录 一、AB 包介绍二、AB 包资源打包(一)导入 AB 包(二)将资源关联 AB 包(三)打包参数选项(四)打包结果(五)AB 包信息 三、加载 AB 包资源(一…

如何让访问者能更快地加载出你的网站?

​  在当今互联网时代,网站已成为人们获取信息、交流互动、进行商业活动等的主要场所之一。然而,由于网络环境的复杂性和不确定性,用户在访问网站时常常会遇到访问缓慢、卡顿等问题,从而影响了用户的使用体验。为了让用户更快地…

【数据结构】常见排序算法——快速排序的三种实现、 hoare版本、挖坑法、前后指针版本

文章目录 1.常见排序2.快速排序2.1hoare版本2.2快速排序优化2.3挖坑法实现2.4前后指针实现 1.常见排序 2.快速排序 快速排序(Quick Sort) 是一种常见的排序算法,也是一种基于分治算法的排序。该算法的基本思想是将一个数据集分成两个子集&…

实验四、shell编程

一、实验目的 1.了解shell的特点和主要种类。 2.掌握 shel1 脚本的建立和执行方式。 3.掌握bash的基本语法。 4.学会编写shell 脚本。 二、实验内容 shell 脚本的建立和执行。历史命令和别名定义。shell变量和位置参数、环境变量。bash的特殊字符。一般控制结构。算术运算及…

Redis事务和管道

一、Redis事务 1、定义 可以一次执行多个命令,本质上是一组命令的集合。一个事务中的所有命令都会序列化,按顺序的串行化执行而不会被其他命令插入,不能加塞。 2、作用 一个队列中,一次性、顺序性、排他性的执行一系列命令。 …

第Y3周:yolov5s.yaml文件解读

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊|接辅导、项目定制 ✅本周任务:将yolov5s网络模型中第4层的C3*2修改为C3*1,第6层的C3*3修改为C3*2。 简单介绍: YOLOv5配置了…

企业Wiki和知识库-SaaS产品运营指南

内部Wiki也叫做企业Wiki,是员工可以存储、共享和协作创作的地方,将企业内部员工知识共享集中到一个地方,并且相关内容与其他团队成员协作完成,它可以包含企业内部的各种知识,从操作指南到培训手册,再到客户…

RabbitMQ - 延迟队列

RabbitMQ - 延迟队列 延迟队列介绍RabbitMQ 中的 TTL整合 springboot队列 TTL延时队列TTL优化Rabbitmq 插件实现延迟队列总结 延迟队列介绍 延迟队列概念: 延时队列,队列内部是有序的,最重要的特性就体现在它的延时属性上,延时队列中的元素是…