JIAKAOBO

LeetCode

venmo
wechat

感谢赞助!

  • ㊗️
  • 大家
  • offer
  • 多多!

Problem

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
...

Example 1:

Input: 1
Output: "A"

Example 2:

Input: 28
Output: "AB"

Example 3:

Input: 701
Output: "ZY"

Code

class Solution {
    public String convertToTitle(int n) {
        StringBuilder sb = new StringBuilder();

        while(n > 0){
            // 注意是n--,比如n=3,结果应该是c
          	// 'A'需要+2,而不是3
          	// 此外,在n /= 26的时候也需要n--,比如n=26,应该输出z
          	// 如果不用n--,最后的n /= 26会进行下一步,最后得到两个字符
            // 先求出最后一位
            // 比如28
            // 先得到27
            // 'A' + 27 % 26 = 'B'
            n--;
            // 要转换成char类型
            sb.append((char)('A' + n % 26));
            n /= 26;
        }

        return sb.reverse().toString();
    }
}