Excel Sheet Column Title

题目描述

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

解题方法

这个应该参照进制转化的方法,不断地除26取余数

  • 如果余数是1-25, 就按照A-Y取
  • 如果余数是0, 那么该位就应该是Z,并且下一次N要减去1来计算,因为下一位应该是从""开始而不是"A",index应该减1
    • 这个可以理解成,虽然Z的时候26的倍数多了一个,但是并没有进位,所以要减去1

Solution

class Solution(object):
    def convertToTitle(self, n):
        """
        :type n: int
        :rtype: str
        """
        if not n:
            return ""

        result = ""
        while n > 0:
            r = n % 26
            n = n / 26
            if r:
                result = chr(ord('A') + r - 1) + result
            else:
                result = "Z" + result
                n -= 1

        return result

Reference