zoukankan      html  css  js  c++  java
  • 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;
        }
    };
    
    作者:云梦士
    本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
  • 相关阅读:
    ansible 批量在远程主机上执行命令
    SQLAlchemy
    operator, itertools
    mongodb基础语法
    django model Meta选项
    __getattr__,settr
    django的contenttype表
    time和datetime和tzinfo
    全局钩子的改名
    dom中文字居中
  • 原文地址:https://www.cnblogs.com/yunmeng-shi/p/15089472.html
Copyright © 2011-2022 走看看