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"

这个题目实际上就想用26进制去将integer转换为string而已.可以看到如果是n%26, 如果是0, 那么就是Z, 否则的话就是chars[n%6], 并且之前的n/26要减一.

Code

1) 基本做法

class Solution:
def convertToTitle(self, n):
chars, rem, ans = 'Z' + string.ascii_uppercase, 1, ""
while n > 0:
rem, n = divmod(n, 26)
ans += chars[n]
if n == 0:
rem -= 1
n = rem
return ans[::-1]

2) 利用chr(ord('A') + n) 去代替chars

class Solution:
def converToTitle(self, n):
ans = ""
while n > 0:
rem, n = divmod(n-1, 26)
ans += chr(ord('A') + n)
n = rem
return ans[::-1]

3) 利用2) 的算法, 但是我们用recursive方式

class Solution:
def converToTitle(self, n):
return "" if n == 0 else self.converToTitle((n-1)/26) + chr(ord('A') + (n-1)%26)

最新文章

  1. 用xcode6.3编译早期工程时出现Undefined symbols for architecture x86_64错误的解决办法(转)
  2. Java日期处理类
  3. 美国L1签证和B1,E2签证的区别
  4. sentos 上安装vnc图形界面
  5. leetcode@ [68] Text Justification (String Manipulation)
  6. HDOJ-ACM1003(JAVA)
  7. jquery 银行卡号验证
  8. sql基础复习
  9. 11136-Hoax or what
  10. xp对opengl的支持问题
  11. [SCOI2007]压缩 区间dp
  12. Sublime Text 2安装图解
  13. ssh 设置私钥实现两台linux主机无密码访问
  14. [poj3904]Sky Code_状态压缩_容斥原理
  15. Android中怎样获取SD卡路径
  16. File 文件
  17. 转,敏感词过滤,PHP实现的Trie树
  18. Java NIO(一)I/O模型概述
  19. Vuejs 使用 lib 库模式打包 umd 解决 NPM 包发布的问题
  20. Web中的宽和高

热门文章

  1. goldengate 过滤对某张表的复制操作
  2. JDBC的驱动是如何加载的
  3. 《代码大全》阅读笔记-33-个人性格(personal character)
  4. jenkins 集成redmine
  5. stopImmediatePropagation和stopPropagation (事件、防止侦听)
  6. for,for-each,for-in,for-of,map的比较
  7. 状态机FSM
  8. 关于javaagent拦截不到File类的问题
  9. 【CF917D】Stranger Trees 树形DP+Prufer序列
  10. [工具] f.lux – 随时间改变屏幕色温护眼