《LeetCode之每日一题》:75.Excel表列名称

Posted 是七喜呀!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《LeetCode之每日一题》:75.Excel表列名称相关的知识,希望对你有一定的参考价值。

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表列名称的主要内容,如果未能解决你的问题,请参考以下文章

《LeetCode之每日一题》:287.反转链表

《LeetCode之每日一题》:286.移除链表元素

《LeetCode之每日一题》:134.移除链表元素

《LeetCode之每日一题》:136.反转链表

《LeetCode之每日一题》:157.分隔链表

《LeetCode之每日一题》:287.反转链表