题目
Given a positive integer, return its corresponding column title as appear in an Excel sheet.
For example:
1 -> A
2 -> B
3 -> C
...
26 -> Z
27 -> AA
28 -> AB
我的解法
public class Solution {
public String convertToTitle(int n) {
StringBuilder sb = new StringBuilder();
while(n != 0){
char c = (char)('A' + (n-1)%26);
sb.append(c);
n = (n - 1) / 26;
}
return sb.reverse().toString();
}
}
算法分析:参考10进制换算。0-9、10-19、20-29......、100-199....,得到最低位通过n%10得到,进一位通过n/10得到。类比,因为1-A,从1开始而不是0开始,那么就要(n-1)%26得到最低位,(n-1)/26的到进一位。