码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode-Excel Sheet Column Title

时间:2015-10-11 01:36:34      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:

题目:

  把数字转化为excel形式的字符表示。示例:1->A 2->B 3->C ... 26->Z 27->AA...

 

解题思路:

  乍一看有点像进制转换题目,不过细想想发现它没有‘0’。所以这时候需要我们仔细观察:很明显,这是26进制的表示方法,但是没有0的表示方法。所以我们来归纳一下,十进制10在这里面怎么表示,是Z,20呢?B*,30是C*,以此类推:

10 - Z

20 - B*

30 - C*

...

260 - YZ

 

  也就是说当n>0且n%26 == 0时,我们输出Z,并且向上一位借1(这里有点像除法的借位),换而言之,当n%26==0时,我们输出Z之后,在后续的计算中n应该等于 (n-1)/26。所以代码如下

class Solution(object):
    def convertToTitle(self, n):
        """
        :type n: int
        :rtype: str
        """
        ret = ‘‘
        alpha = ‘ZABCDEFGHIJKLMNOPQRSTUVWXY‘
        while n > 0:
            ret = alpha[n%26] + ret
            n = (n-1) / 26
        return ret

 

leetcode-Excel Sheet Column Title

标签:

原文地址:http://www.cnblogs.com/Blaxon/p/4868676.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!