1.需要
- 正の整数を指定すると、対応する列名をExcelテーブルに返します。
例えば、
1-> A
2-> B
3-> C
...
26-> Z
27-> AA 28-
> AB
..。
例1:
入力: 1 出力:「A」例2:
入力: 28 出力:「AB」例3:
入力: 701 出力: "ZY"
二、基本変換法
2.1思考分析
- A〜Zは16進数のFに例えられます。A〜、A〜は、Zが1〜26の数値を表す場合、10進数を変換する対象が16進数の26 A〜Zを表すことを意味し 、i-を表すために使用します。 26ベースシステムのthビット、次に:
- 一般式: 、このときの範囲は 1〜26なので、x1が必要です。方程式の両側の26の余りがx1を取得できない場合、この問題を解決するために、の両側から1を引くことができます。同時に方程式が得られるので、次のようになります。このように、x1-1の範囲は0〜25であり、方程式の両側の26の剰余はx1、つまりx1 =(n-1)を得ることができます。 %26 + 1;
- 同様に、x2を見つけるのに便利なように、方程式の両側で同時に26を除算してx1を削除します。したがって、x2、x3などの方法は2、3を繰り返すことです。
2.2コードの実装
class Solution {
public String convertToTitle(int n) {
StringBuilder sb = new StringBuilder();
while(n > 0) {
n--;
//这里将'A'看作1
sb.append((char)(n % 26 + 'A'));
n = n / 26;
}
sb.reverse();
return sb.toString();
}
}
2.3複雑さの分析
- 時間計算量は、10進数を26に変換することです。
- スペースの複雑さはO(1)であり、戻り値は余分なスペースに含まれていません。
3.学習アドレス
著者:windliang
リンク:https://leetcode-cn.com/problems/excel-sheet-column-title/solution/xiang-xi-tong-su-de-si-lu-fen-xi-by-windliang-2/