题目:

给你一个整数 columnNumber ,返回它在 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"
示例 4:

输入:columnNumber = 2147483647
输出:"FXSHRXW"

提示:

  • 1 <= columnNumber <= 231 - 1

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/excel-sheet-column-title
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路:

类比进制转换中的【除留余数法

十进制的余数:0~9

二进制的余数:0、1

二十六进制的余数:0~25

已知A~Z的映射值为1~26,需要将其映射到0~25,故需要将每一位映射值减1即可。

例如:

columnNumber = 701

第一轮:

columnNumber - 1== 700;
columnNumber % 26 == 24;
(char)('A' + columnNumber % 26) == (char) (65 +24 ); ==> Y
sb.append(Y);
columnNumber /26 == 26;

第二轮:

columnNumber - 1== 25;
columnNumber % 26 == 25;
(char)('A' + columnNumber % 26) == (char) (65 +25 ); ==> Z
sb.append(Z)
columnNumber /26 == 0;

columnNumber == 0 结束循环,结果为 YZ,返回结果就是 ZY。

代码:

 1 class Solution {
2 public String convertToTitle(int columnNumber) {
3 StringBuilder sb = new StringBuilder();
4 while( columnNumber != 0){
5 columnNumber--;
6 sb.append((char)('A' + columnNumber % 26));
7 columnNumber /= 26;
8 }
9 return sb.reverse().toString();
10 }
11 }

力扣168(java)-Excel表列名称(简单)的更多相关文章

  1. 力扣(LeetCode)Excel表列名称 个人题解

    给定一个正整数,返回它在 Excel 表中相对应的列名称. 例如, 1 -> A 2 -> B 3 -> C ... 26 -> Z 27 -> AA 28 -> ...

  2. [Swift]LeetCode168. Excel表列名称 | Excel Sheet Column Title

    Given a positive integer, return its corresponding column title as appear in an Excel sheet. For exa ...

  3. Excel表列名称(给定一个正整数,返回它在 Excel 表中相对应的列名称。)

    例如, 1 -> A 2 -> B 3 -> C ... 26 -> Z 27 -> AA 28 -> AB ... 示例 1: 输入: 1 输出: "A ...

  4. 刷题-力扣-168. Excel表列名称

    168. Excel表列名称 题目链接 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/excel-sheet-column-title 著作权 ...

  5. 力扣561. 数组拆分 I-C语言实现-简单题

    题目 传送门 给定长度为 2n 的整数数组 nums ,你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), ..., (an, bn) ,使得从 1 到 n 的 min(a ...

  6. 力扣566. 重塑矩阵-C语言实现-简单题

    题目 传送门 在MATLAB中,有一个非常有用的函数 reshape,它可以将一个矩阵重塑为另一个大小不同的新矩阵,但保留其原始数据. 给出一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示想要 ...

  7. 力扣832. 翻转图像-C语言实现-简单题

    题目 传送门 文本 给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果. 水平翻转图片就是将图片的每一行都进行翻转,即逆序.例如,水平翻转 [1, 1, 0] 的结果是 [0, 1, ...

  8. 力扣896. 单调数列-C语言实现-简单题

    题目 传送门 文本 如果数组是单调递增或单调递减的,那么它是单调的. 如果对于所有 i <= j,A[i] <= A[j],那么数组 A 是单调递增的. 如果对于所有 i <= j, ...

  9. 力扣168. Excel表列名称

    原题 1 class Solution: 2 def convertToTitle(self, n: int) -> str: 3 s = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ ...

  10. EXCEL多列名称组合成一列名称

随机推荐

  1. day26--Java集合09

    Java集合09 18.TreeSet 元素无序:插入顺序和输出顺序不一致 可以按照一定的规则进行排序,具体排序方式取决于构造方法: TreeSet () :根据其元素的自然排序进行排序 TreeSe ...

  2. C++类的访问权限

    首先明确一个类的用户有三种: 一类用户:类的成员和友元 二类用户:子类的成员及子类的友元 三类用户:外部的用户代码(通过类的对象或指针) 一个类有三种成员 private:只有一类用户可以访问priv ...

  3. enum class 用法

    enum的主要缺点 1.类型不明确 首先,无法指定数据类型,导致我们无法明确枚举类型所占的内存大小.这种麻烦在结构体当中尤为突出,特别是当我们需要内存对齐和填充处理的时候. #include < ...

  4. 01_Mac安装Homebrew

    目录 1 官方 1.1 前提 1.2 安装 2 其他安装方法 2.1 安装homebrew-core 2.2 安装homebrew-cask 3 源 3.1 查看源 3.2 设置源 3.3 设置bot ...

  5. [TM4] TM4C123G Keil5 新建工程指南

    [TM4] TM4C123G Keil5 新建工程指南 keil新建工程,选择TM4C123GH6PM芯片,然后在CMSIS勾选CORE,DEVICE勾选Startup(如图),来到新工程界面 在So ...

  6. 04.Android之动画问题

    目录介绍 4.0.0.1 Android中有哪几种类型的动画,属性动画和补间动画有何区别?补间动画和属性动画常用的有哪些? 4.0.0.2 View动画为何不能真正改变View的位置?而属性动画为何可 ...

  7. 原型&继承题目及内容解答

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 1. 代码输出结果 function Person(name) { this.name = name } var p2 = new Per ...

  8. 超详细的彻底卸载VMware虚拟机方法

    一.在卸载VMware虚拟机之前,要先把与VMware相关的服务和进程终止 1.在windows中按下[Windows键],搜索[服务]设置,然后打开: 2.找到以VM打头命名的服务,然后右键停止这些 ...

  9. 使用 Kotlin DSL 编写网络爬虫

    本博文将会通过一个网络爬虫的例子,向你介绍 Kotlin 的基本用法和其简洁有力的 DSL. 关于DSL 按照维基百科的说法,DSL(domain-specific language) 是一种专注于某 ...

  10. [ERROR] “不支持使用 SOAP 编码。SOAP 扩展元素包含 use=“encoded“ “ 无法解析 WSDL。

    下载axis-1_4,地址https://archive.apache.org/dist/ws/axis/1_4/ 解压,进入D:\axis-1_4\lib 执行命令 java -cp mail.ja ...