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

LeetCode: Excel Sheet Column Title

时间:2016-05-07 09:20:25      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:

题目: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 

解题思路:10进制转26进制

几个注意点:

1.如何将数字转换成字符:使用指令chr(字符的ASCII码编号)。如chr(65)=‘A‘。
2.如何将字符转换成数字:使用指令ord(‘字符‘)。如ord(‘A‘)=65。
3.根据以上两条,可以令转换后的26进制字符: Title=chr[num%26+ord(‘A‘)]
将26进制数字转换成字符。但是不能用 num%26 的方式,试想num=26,26%26=0。而ord(‘Z‘)=90,所以需要对num减1,即:
Titel=chr[(num-1)%26+ord(‘A‘)]

代码:

class Solution(object):
def convertToTitle(self, n):
    """
    :type n: int
    :rtype: str
    """
    return(" " if n==0 else self.converToTitle((n-1)/26)+chr((n-1)%26+ord(‘A‘))
    """
    X if Y else Z的意思是:如果Y真返回X否则返回Z
    self.convertToTitle:递归自己,即每一次使用(n-1)/26作为新n,进行chr((n-1)%26+ord(‘A‘))的计算
    """

代码2:

class Solution(object):
def convertToTitle(self, n):
    """
    :type n: int
    :rtype: str
    """
    Title = ""
    while(n>0):
        n -=1
        Title = chr(n%26+65)+Title
        n /=26
    return Title 

LeetCode: Excel Sheet Column Title

标签:

原文地址:http://blog.csdn.net/neoye125/article/details/51334205

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