Leetcode No.168 Excel Sheet Column Title Excel表列名称(c++实现)

时间:2021-08-02
本文章向大家介绍Leetcode No.168 Excel Sheet Column Title Excel表列名称(c++实现),主要包括Leetcode No.168 Excel Sheet Column Title Excel表列名称(c++实现)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1. 题目

1.1 英文题目

Given an integer columnNumber, return its corresponding column title as it appears in an Excel sheet.

1.2 中文题目

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

1.3输入输出

输入 输出
columnNumber = 1 "A"
columnNumber = 28 "AB"
columnNumber = 701 "ZY"
columnNumber = 2147483647 "FXSHRXW"

1.4 约束条件

  • 1 <= columnNumber <= 231 - 1

2. 分析

2.1 一般算法

这道题类似于十进制转化为其他进制的问题,因此可以类比进制转换的“除2取余法”,具体代码如下:

class Solution {
public:
    string convertToTitle(int columnNumber) {
        int carry = -1;//存储余数
        string result = "";
        char element;//结果中的字母元素
        while (columnNumber > 1 || (columnNumber == 1 && carry != 0))
        {
            if (carry == 0) { // 这一步最关键,若某一位余数为0,则上一位减1
                --columnNumber;
            }
            carry = columnNumber % 26;
            element = carry != 0 ? static_cast<char>(carry - 1 + 'A') : 'Z';
            result = element + result;
            columnNumber /= 26;
        }
        return result;
    }
};
作者:云梦士
本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。

原文地址:https://www.cnblogs.com/yunmeng-shi/p/15089472.html