首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

LeetCode 168:Excel 表列標題 — 26 進制轉換(無 0 的進制)

     編輯:關於C++

題目描述

給定正整數 n,返回其對應的 Excel 列標題。
1→A, 2→B, ..., 26→Z, 27→AA, 28→AB, ..., 702→ZZ, 703→AAA。

解題思路

類似 26 進制,但沒有 0(A=1, ..., Z=26)。因此每次取餘數前先 n--,再取模 26,得到 0~25 對應 A~Z。循環直到 n 為 0,字符拼接在字符串前端。

參考代碼 (C++)

class Solution {
public:
    string convertToTitle(int n) {
        string res;
        while (n > 0) {
            --n; // 關鍵:調整為 0-based
            res = char('A' + n % 26) + res;
            n /= 26;
        }
        return res;
    }
};

複雜度分析

  • 時間:O(log₂₆ n) —— 循環次數等於字符長度。
  • 空間:O(log₂₆ n) —— 結果字符串。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved