力扣(LeetCode)168. Excel表列名称

题目:给定一个正整数,返回它在 Excel 表中相对应的列名称。

例如,

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

输入: 1
输出: "A"
示例 2:

输入: 28
输出: "AB"
示例 3:

输入: 701
输出: "ZY"

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

解题思路:

class Solution {
public:
    string convertToTitle(int columnNumber) {
        string s;
        while(columnNumber > 26){//判断当前columnNumber值是否大于26
            if(columnNumber%26 == 0){ //考虑特殊情况,如果该值是26的倍数,直接是Z,商值减1
                s.push_back('Z');
                columnNumber = columnNumber/26-1;
            }else{//考虑特殊情况,如果该值是不26的倍数
                s.push_back(char('A'+(columnNumber%26)-1));
                columnNumber = columnNumber/26;
            }
        }
        s.push_back(char('A'+columnNumber-1));//处理最后的columnNumber
        reverse(s.begin(),s.end()); //反转字符串得到最后的结果
        return s;

    }
};

猜你喜欢

转载自blog.csdn.net/zhangqianqian57/article/details/115385689