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

2021/8/2 14:06:37

本文主要是介绍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;
    }
};


这篇关于Leetcode No.168 Excel Sheet Column Title Excel表列名称(c++实现)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程