Given a positive integer, return its corresponding column title as appear in an Excel sheet.
本质上是进制转换, 只是这里是26进制. 26进制余数可以取0 ~ 25, 但由于结果要求从1~26, 因此每次要减1.
举个例子, 28 = AB, 如果不-1取余得到2, 2 + A = C, 然后28 / 26 = 1, 再对26取余得到B, 即BC. 因此我们要每次都对n - 1.
class Solution {
public String convertToTitle(int n) {
StringBuilder sb = new StringBuilder();
while (n > 0) {
n--;
sb.insert(0, (char)('A' + n % 26));
n /= 26;
}
return sb.toString();
}
}
时空复杂度O(lgN).