《LeetCode之每日一题》:75.Excel表列名称
Posted 是七喜呀!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《LeetCode之每日一题》:75.Excel表列名称相关的知识,希望对你有一定的参考价值。
题目链接: Excel表列名称
有关题目
给定一个正整数,返回它在 Excel 表中相对应的列名称。
例如,
1 -> A
2 -> B
3 -> C
...
26 -> Z
27 -> AA
28 -> AB
...
示例 1:
输入: 1
输出: "A"
示例 2:
输入: 28
输出: "AB"
示例 3:
输入: 701
输出: "ZY"
题解
法一:数学
思路:利用 0 <= a0 - 1 <= 25性质,
class Solution {
public:
string convertToTitle(int columnNumber) {
string ans;
//columnNumber - 1 = a0 - 1 + a1 * 26 ^ 1+ a2 * 26 ^ 2 + ...
while(columnNumber)
{
int a0 = (columnNumber - 1) % 26 + 1;//其实就是a0 - 1 = (columnNumber - 1) % 26
ans += a0 - 1 + 'A';
columnNumber = (columnNumber - a0) / 26;//拿掉a0 ,下次循环将a1 替换为 a0
}
reverse(ans.begin(),ans.end());
return ans;
}
};
代码二:
class Solution {
public:
string convertToTitle(int columnNumber) {
string ans;
while(columnNumber)
{
columnNumber--;
ans += columnNumber % 26 + 'A';
columnNumber /= 26;
}
reverse(ans.begin(),ans.end());
return ans;
}
};
以上是关于《LeetCode之每日一题》:75.Excel表列名称的主要内容,如果未能解决你的问题,请参考以下文章