Leetcode No.168 Excel Sheet Column Title Excel表列名稱(c++實現)
阿新 • • 發佈:2021-08-02
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取餘法”,具體程式碼如下:
作者:雲夢士 出處:http://www.cnblogs.com/yunmeng-shi/ 本文版權歸作者和部落格園共有,歡迎轉載,但必須給出原文連結,並保留此段宣告,否則保留追究法律責任的權利。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; } };