题目:
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解答:
n/26得到的余值对于最后一位字母,余值(设为m)为1--25时,对应A-Z,m=0时对应Z,得到最后一位后,n=n-m,再重复;值得注意的地方在于m==0时,n的值需要减去1(进行一个修正)。比如n=26时,m=n-n/26*26=0,得到A,n=n-m,仍然为1,此时结果为AZ!!
代码:
public class Solution {
public String convertToTitle(int n) {
int MODE = 26;
int remaining = 0;
StringBuilder str = new StringBuilder("");
while(n>0){
remaining = n - n/MODE * MODE;
str.append((char)(remaining > 0 ? remaining - 1 + 'A':'Z'));
n = n/MODE;
if(remaining == 0)
n -= 1;
}
return str.reverse().toString();
}
}