dangdangA

导航

Python活力练习Day24

Day24:(Excel表列名称) 给定一个正整数,返回它在Excel表中相对应的列名称

  eg : 1 —> A

    2 —> B

    3 —> C

    . . .

    26 —> Z

    27 —> AA

    28 —> AB

    . . .

#做这道题实质是十进制转换为二十六进制

#但是进制是从数字0开始的,而题目要求的是从1开始的,所以每次要对其进行减一操作

#比如数字26 ,出现了0,此时没有任何一个字母是表示0

#函数divmod()用法:把除法和余数运算结果结合起来,返回一个包含商和余数的元祖(a // b,a % b)

          divmod(a,b)  #int  a ,int b

          

 1 def convertToTitle(n):
 2     # A的ascii码为65
 3     s = ''
 4     while (n):
 5         n -= 1
 6         #y 为余数,n 为除数
 7         n,y = divmod(n,26)
 8         s = chr(y + 65) + s
 9     return s
10 
11 n = 701
12 print(convertToTitle(n))

输出结果:ZY

 

#如若不懂可参考 https://leetcode-cn.com/problems/excel-sheet-column-title/

posted on 2020-01-09 10:40  dangdangA  阅读(201)  评论(0编辑  收藏  举报