給定正整數 n,返回 Excel 表中對應的列標題。例如:1→A, 26→Z, 27→AA, 28→AB。這本質是 26 進制轉換,但無「0」位,即 1-26 對應 A-Z。
類似進制轉換,但每次取餘數時:
最後反轉字符串得到結果。
public class Solution {
public String convertToTitle(int n) {
StringBuilder sb = new StringBuilder();
while (n > 0) {
int rem = n % 26;
if (rem == 0) {
sb.append('Z');
n = n / 26 - 1;
} else {
sb.append((char)('A' + rem - 1));
n /= 26;
}
}
return sb.reverse().toString();
}
}
| 輸入 | 輸出 |
|---|---|
| 1 | A |
| 26 | Z |
| 27 | AA |
| 52 | AZ |
| 701 | ZY |
關鍵在於處理「無零位」的 26 進制,借位邏輯是核心。時間複雜度 O(log26 n),空間 O(log26 n)。