Leetcode P0168"Excel Sheet Column Title" 题解

2020/09/23 Leetcode

博文中会简要介绍Leetcode P0168题目分析及解题思路。

“Excel Sheet Column Title”这道题比较基础,根据题目要求,我们可以知道其实这道题是一个26进制的题目,唯一特殊的地方在于这个26进制的起点是1而不是通常的0,所以我们每次减去1然后当成26进制来处理即可。

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

For example:

    1 -> A
    2 -> B
    3 -> C
    ...
    26 -> Z
    27 -> AA
    28 -> AB 
    ...

以下是Java的题解代码实现。

class Solution {
    public String convertToTitle(int n) {
        int radix = 26;
        StringBuilder ret = new StringBuilder();
        
        while (n != 0) {
            int remainder = (n-1)%radix;
            ret.append((char) ('A'+remainder));
            n = (n-1-remainder)/radix;
        }
        
        return ret.reverse().toString();
    }
}

以下是C++的题解代码实现。

class Solution {
public:
    string convertToTitle(int n) {
        int radix = 26;
        string title = "";
        
        while (n != 0) {
            int remainder = (n-1)%radix;
            char ch = 'A'+remainder;
            title = ch+title;
            n = (n-1-remainder)/radix;
        }
        
        return title;
    }
};

Search

    Table of Contents