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

LeetCode 154 Excel 表列標題 - 另一種實現視角

     編輯:關於C++

問題重述

同 5406,正整數轉 Excel 列標題(26 進制無零位)。

另一種寫法:預減 1 法

觀察:若將 n 先減 1,則 0→A, 1→B, ..., 25→Z,恰好是標準 26 進制。遞歸/迭代:

public String convertToTitle(int n) {
    StringBuilder sb = new StringBuilder();
    while (n > 0) {
        n--; // 關鍵:預減 1
        sb.append((char)('A' + n % 26));
        n /= 26;
    }
    return sb.reverse().toString();
}

原理:n-1 使映射從 1-based 變為 0-based,消除借位邏輯。代碼更簡潔,不易出錯。

對比

方法關鍵步驟優點
借位法rem==0 時借位直觀對應題目定義
預減 1 法循環首行 n--代碼極簡,無分支

推薦預減 1 法,面試中易寫對。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved