每日一练(41)(Excel表列名称)
title: 每日一练(41):Excel表列名称
categories:[剑指offer]
tags:[每日一练]
date: 2022/04/13
每日一练(41):Excel表列名称
给你一个整数 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:
【每日一练(41)(Excel表列名称)】输入:columnNumber = 2147483647
输出:"FXSHRXW"
提示:
1 <= columnNumber <= 231 - 1
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/probl...
方法一: 从1开始的26进制转换
思路分析
正常的26进制显示数字应该是0-25,而本题是1-26,那么在处理每一位之前进行减一,即可变成正常进制转换操作。
string convertToTitle(int columnNumber) {
string ans;
do {
columnNumber--;
ans = char(columnNumber % 26 + 'A') + ans;
//得到字符列名称
columnNumber /= 26;
} while(columnNumber > 0);
return ans;
}
方法二:取余+反转
思路分析 当余数为0时,我们不能取@而是应该取Z
string convertToTitle(int columnNumber) {
string ans;
while (columnNumber) {
int remainder = columnNumber % 26;
if (remainder == 0) { //如果余数是0,就像上一位借个1(26)出来,让余数强行等于26
remainder = 26;
columnNumber -= 26;
}
ans.push_back(remainder + 'A' - 1);
columnNumber /= 26;
}
reverse(ans.begin(), ans.end());
//字符串倒序
return ans;
}
推荐阅读
- Python(我想修复在vscode上的excel中打开csv文件时出现的乱码)
- excel分类汇总怎么做
- excel表格若何排序
- excel表格插入图片
- excel主要功能
- Excel2007运用图文详细教程:只读密码设置与更改_Excel专区
- Excel2007新手图文详细教程:私人定制文档主题_Excel专区
- Excel2007新手图文详细教程:单元格显示出错代码的含义_Excel专区
- 新手必学:Excel 20076个更改技巧_Excel专区
- Excel2007:巧设工作表的保护措施_Excel专区